【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("金额")["金额"]

相关文章
|
9天前
|
数据采集 Web App开发 数据处理
一步步教你用Python Selenium抓取动态网页任意行数据
使用Python Selenium爬取动态网页,结合代理IP提升抓取效率。安装Selenium,配置代理(如亿牛云),设置User-Agent和Cookies以模拟用户行为。示例代码展示如何使用XPath提取表格数据,处理异常,并通过隐式等待确保页面加载完成。代理、模拟浏览器行为和正确配置增强爬虫性能和成功率。
一步步教你用Python Selenium抓取动态网页任意行数据
|
6天前
|
数据采集 机器学习/深度学习 数据可视化
利用Python和Pandas库构建高效的数据分析流程
在数据驱动的时代,数据分析已成为企业决策的关键环节。本文介绍如何利用Python编程语言及其强大的数据分析库Pandas,构建一套高效且可扩展的数据分析流程。与常规的数据分析流程不同,本文不仅涵盖数据加载、清洗、转换等基础步骤,还强调数据可视化、模型探索与评估等高级分析技巧,并通过实际案例展示如何在Python中实现这些步骤,为数据分析师提供一套完整的数据分析解决方案。
|
14天前
|
Python
在Python的pandas库中,向DataFrame添加新列简单易行
【6月更文挑战第15天】在Python的pandas库中,向DataFrame添加新列简单易行。可通过直接赋值、使用Series或apply方法实现。例如,直接赋值可将列表或Series对象分配给新列;使用Series可基于现有列计算生成新列;apply方法则允许应用自定义函数到每一行或列来创建新列。
78 8
|
10天前
|
定位技术 索引 Python
Python GDAL缩放栅格文件各波段数值
本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像文件的方法。 首先,看一下本文的具体需求。我们现有一个文件夹,其中含有大量.tif格式的遥感影像文件;其中,这些遥感影像文件均含有4个波段,每1个波段都表示其各自的反射率数值。而对于这些遥感影像文件,有的文件其各波段数值已经处于0至1的区间内(也就是反射率数据的正常数值区间),而有的文件其各波段数值则是还没有乘上缩放系数的(在本文中,缩放系数是0.0001)。
|
17天前
|
数据采集 数据可视化 数据挖掘
数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
【6月更文挑战第12天】在数字时代,Python因其强大的数据处理能力和易用性成为数据分析首选工具。结合Pandas(用于高效数据处理)和Matplotlib(用于数据可视化),能助你成为数据分析专家。Python处理数据预处理、分析和可视化,Pandas的DataFrame简化表格数据操作,Matplotlib则提供丰富图表展示数据。掌握这三个库,数据分析之路将更加畅通无阻。
|
22天前
|
Python
Python中不同类型的数值
【6月更文挑战第5天】
17 7
|
19天前
|
存储 数据挖掘 数据处理
【python源码解析】深入 Pandas BlockManager 的数据结构和初始化过程
【python源码解析】深入 Pandas BlockManager 的数据结构和初始化过程
|
24天前
|
存储 数据挖掘 数据处理
19. Python 数据处理之 Pandas
19. Python 数据处理之 Pandas
28 1
|
8天前
|
Python
pandas中groupby和shift结合实现相邻行的计算
pandas中groupby和shift结合实现相邻行的计算
10 0
|
11天前
|
UED Python
精准控制:Python 输入数值范围限制详解
在Python编程中,确保用户输入数值在特定范围内是常见的需求,能防止错误并优化用户体验。基础方法涉及使用`while`循环和条件判断,如通过`get_number_in_range`函数不断验证用户输入,直到数值在设定的`min_value`和`max_value`之间。在更复杂场景下,可定义自定义异常类`OutOfRangeError`增强错误处理。此外,正则表达式可用于验证数值字符串格式。这些技术帮助测试工程师有效控制输入数据,确保程序正确运行。
14 0