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

如何在Python中按组循环使用cumsum函数?附示例需求

分组内重置起点的累积求和解决方案

没问题,这在pandas里是非常常见的分组计算需求,我直接给你可运行的代码和清晰的逻辑解释:

步骤1:构造初始DataFrame

先把你给出的变量转换成pandas的DataFrame:

import pandas as pd

# 对应你示例结果的原始数据
A = ['a','a','a','a','a','a','a','b','b','b','b','b']
B = [0,1,2,3,4,5,6,0,1,2,3,4]
C = [0,3,4,5,7,6,7,6,4,6,8,6]

# 创建初始DataFrame
df = pd.DataFrame({'A': A, 'B': B, 'C': C})

步骤2:计算分组内累积求和生成D列

用groupby结合cumsum实现分组内重置的累积求和:

# 按A列分组,对每个分组内的C列计算累积求和,结果赋值给D列
df['D'] = df.groupby('A')['C'].cumsum()

查看最终结果

运行上述代码后,打印df就能得到你想要的结果:

A  B  C   D
0  a  0  0   0
1  a  1  3   3
2  a  2  4   7
3  a  3  5  12
4  a  4  7  19
5  a  5  6  25
6  a  6  7  32
7  b  0  6   6
8  b  1  4  10
9  b  2  6  16
10 b  3  8  24
11 b  4  6  30

核心逻辑说明

  • df.groupby('A'):将数据按A列的取值分成独立分组(这里就是a组和b组)
  • ['C'].cumsum():对每个分组内的C列单独计算累积和,切换到新分组时会自动重置累积起点,完全匹配你要求的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:01:12