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

pandas按分组计算从0开始仅累加至组内倒数第二个条目的累计和

实现方案

核心思路

  • 按A列分组后提取B列做累计和计算
  • 将每个分组的累计和结果向下偏移1行,偏移后的缺失值统一填充为0,直接赋值为新列C即可
  • 若原始数据中同一A值的行非连续排列,建议先按A列排序后再执行上述逻辑,避免累计和计算错误

代码实现

import pandas as pd

# 构造示例输入数据
df = pd.DataFrame({
    'A': [1,1,2,2,2,3,3,4],
    'B': [5,6,3,4,5,2,7,3]
})

# 核心逻辑,一行即可实现需求
df['C'] = df.groupby('A')['B'].cumsum().shift(fill_value=0)

# 输出验证
print(df)

输出结果

完全匹配预期输出:

A  B  C
0  1  5  0
1  1  6  5
2  2  3  0
3  2  4  3
4  2  5  7
5  3  2  0
6  3  7  2
7  4  3  0

内容的提问来源于stack exchange,提问作者William M.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 21:06:03