【Python】【Pandas】将符合条件行的某列数值改为负数

简介: 在此顺便记录几个常用代码写法:1.不重复取出一列的值data[列名].unique()或者data[列名].value_counts(sort=False)2.对取出的列值进行格式处理

萌狼蓝天情景还原:

支付宝/微信导出的账单,不管支出还是收入都是正数。

我想把支出的金额改成负数,其他不变就这样。

解决办法

这里用到的是pandas.apply

e……下面的写法虽然比较麻烦,但是 这是比较好理解的写法,你理解之后可以把他写简单点。

data=data.apply(debuff,axis=1)

  • data是你读入的数据,比如data=pd.read_excel(FilePath)
  • debuff是自定函数名,你自己随便取,后面我们要写这个函数的。
  • axis=1 表示一行一行的取

然后就是写debuff这个函数

def debuff(c): # 这个c自己想写啥名就啥名,代表一行数据
# c["收/支"] 表示取出这一行"收/支"这一列的值
# .strip是取出空白字符
   if c["收/支"].strip() == "支出":
    # 如果是支出,就改为负数
        c['金额'] = -c['金额']
        # 改好后记得将数据return回去
        return c
    else:
  # 如果不是支出,那直接return回去即可
        return c

完毕!

在此顺便记录几个常用代码写法:

1.不重复取出一列的值data[列名].unique()或者data[列名].value_counts(sort=False)

2.对取出的列值进行格式处理

# 这个示例是去掉空白字符
odata_jiaoyifenlei = odata["交易分类"].unique()
odata_jiaoyifenlei = [i.replace(" ","") for i in odata_jiaoyifenlei]

3.根据某列不重复值合计金额

`data.groupby(["交易类型"],sort=False).sum("金额")["金额"]

相关文章
|
8天前
|
机器学习/深度学习 数据处理 Python
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
22 0
|
8天前
|
数据采集 数据挖掘 Python
Python:pandas做爬虫
Python:pandas做爬虫
22 0
|
6天前
|
数据采集 数据可视化 数据挖掘
Python量化炒股常用的Pandas包
Python量化炒股常用的Pandas包
22 7
|
7天前
|
SQL 数据处理 数据库
30天拿下Python之pandas模块
30天拿下Python之pandas模块
|
8天前
|
数据处理 Python
Python数据转换:从Pandas到NumPy转换
Python数据转换:从Pandas到NumPy转换
12 0
|
8天前
|
Python
Python:Pandas实现批量删除Excel中的sheet
Python:Pandas实现批量删除Excel中的sheet
23 0
|
3月前
|
机器学习/深度学习 数据可视化 搜索推荐
Python在社交媒体分析中扮演关键角色,借助Pandas、NumPy、Matplotlib等工具处理、可视化数据及进行机器学习。
【7月更文挑战第5天】Python在社交媒体分析中扮演关键角色,借助Pandas、NumPy、Matplotlib等工具处理、可视化数据及进行机器学习。流程包括数据获取、预处理、探索、模型选择、评估与优化,以及结果可视化。示例展示了用户行为、话题趋势和用户画像分析。Python的丰富生态使得社交媒体洞察变得高效。通过学习和实践,可以提升社交媒体分析能力。
65 1
|
3月前
|
数据挖掘 Python
【Python】已解决:Python pandas读取Excel表格某些数值字段结果为NaN问题
【Python】已解决:Python pandas读取Excel表格某些数值字段结果为NaN问题
177 0
|
24天前
|
机器学习/深度学习 数据采集 监控
Pandas与Matplotlib:Python中的动态数据可视化
Pandas与Matplotlib:Python中的动态数据可视化
|
2月前
|
存储 数据可视化 前端开发
7个Pandas&Jupyter特殊技巧,让Python数据分析更轻松
7个Pandas&Jupyter特殊技巧,让Python数据分析更轻松
下一篇
无影云桌面