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

如何对DataFrame中同id的指定列计算到当前行前一行的累计和

实现代码

你可以直接用pandas的分组累加+偏移逻辑实现,核心代码如下:

import pandas as pd

# 此处替换为你自己的DataFrame变量
df['new_column'] = df.groupby('id')['my_column'].cumsum().shift(1, fill_value=0)

逻辑说明

  • 先用groupby('id')将数据按id字段拆分,保证统计逻辑仅在同id的行范围内生效
  • 对分组内的my_column执行cumsum()累计求和,默认计算到当前行的累加值
  • 调用shift(1, fill_value=0)将累加结果整体向下偏移1行,这样每行的结果就对应当前行之前所有行的累加和,每个分组第一行偏移后的空值直接填充为0,完全匹配示例输出要求。

补充提示:如果你的数据需要先按照特定顺序(比如时间、序列顺序)排序后再统计,需要先对DataFrame执行排序再运行上述新增列代码:

# 示例:按id和排序字段升序排序
df = df.sort_values(['id', 'your_order_column']).reset_index(drop=True)

内容的提问来源于stack exchange,提问作者טל אהרון

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:54:03