You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python pandas DataFrame如何逐行累计求和并新增结果列

Pandas逐行累计求和实现方案

你需要的逐行累加当前行及之前行quantity值的需求,不需要手写循环,直接用pandas内置的累计求和方法cumsum()即可实现,自动适配任意行数,不需要硬编码判断阈值。

实现代码

# 基于你已有的DataFrame,直接追加累计和列
df['sum'] = df['quantity'].cumsum()

运行后输出的结果完全匹配你的预期:

id  index_num  quantity  sum
0  001          0        10   10
1  002          1        10   20
2  003          2        10   30
3  004          3        10   40
4  005          4        10   50

原代码问题说明

  • 你写的循环中判断条件硬编码为<4,每次循环执行的都是df.loc[df['index_num'] < 4, 'quantity'].sum(),计算的是固定范围的总和,没有随当前遍历的行动态调整统计范围,所以无法得到逐行累计的效果
  • 手写循环处理DataFrame效率远低于pandas内置的向量化运算,这类逐行统计的通用需求pandas都有对应内置方法,不需要自行实现循环逻辑

扩展场景

如果后续需要按指定字段分组后,在每个分组内部做累计求和,可以搭配groupby使用:

# 示例:按分类字段category分组,组内逐行累计quantity
df['group_cum_sum'] = df.groupby('category')['quantity'].cumsum()

内容的提问来源于stack exchange,提问作者Hannah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 21:06:36