Python按SUBJECT分组计算SCALE逐行差值生成非负新列
Python处理CSV分组差值实现
前置准备
- 安装数据处理依赖pandas,执行命令:
pip install pandas - 将目标CSV文件放到脚本同级目录,或在代码中替换为文件的实际存储路径
实现代码
import pandas as pd # 读取CSV数据源 df = pd.read_csv("AK4.csv") # 按SUBJECT列分组完成规则计算 df["差值计算结果"] = df.groupby("SUBJECT")["SCALE"].transform( lambda col: (col.shift(1) - col).fillna(0).clip(lower=0) ) # 导出处理完成的结果文件 df.to_csv("AK4_处理结果.csv", index=False, encoding="utf-8-sig")
核心逻辑说明
- 自动按SUBJECT列的取值识别分组边界,切换不同主体时自动重置计算规则,无需手动指定每个分组的行数
- 每个分组首行因为不存在上一行数据,通过
fillna(0)统一赋值初始值0 - 逐行计算上一行SCALE列值与当前行SCALE列值的差值,通过
clip(lower=0)将所有负数值统一截断为0 - 计算结果存入新列
差值计算结果,可根据实际需求修改列名
内容的提问来源于stack exchange,提问作者yt3
相关产品推荐
相关产品推荐

