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

Pandas如何按Group列分组计算distance列的累计求和

实现方法

你可以直接用pandas内置的groupby+cumsum方法实现分组累计求和,完整代码如下:

import pandas as pd
import numpy as np

# 构造测试数据集
df = pd.DataFrame([['2021-01-01','Joe', 1, 7],
                   ['2021-01-02',"Jack", 1, 6],
                   ['2021-01-03',"Jess", 1, 9],
                   ['2021-01-01',"Paul", 2, 11],
                   ['2021-01-02',"Peter", 2, 12],
                   ['2021-01-02',"Sara", 3, 15],
                   ['2021-01-03',"Sarah", 3, 10]],
                  columns=['Date','Runner', 'Group', 'distance [km]'])

# 若原始数据没有按分组+日期排序,先执行排序保证累计和顺序正确
df = df.sort_values(by=['Group', 'Date'])

# 按Group分组计算distance [km]的累计和
df['cum sum [km]'] = df.groupby('Group')['distance [km]'].cumsum()

# 打印结果
print(df)

运行后输出结果和你预期的完全一致:

Date Runner  Group  distance [km]  cum sum [km]
0  2021-01-01    Joe      1              7             7
1  2021-01-02   Jack      1              6            13
2  2021-01-03   Jess      1              9            22
3  2021-01-01   Paul      2             11            11
4  2021-01-02  Peter      2             12            23
5  2021-01-02   Sara      3             15            15
6  2021-01-03  Sarah      3             10            25

注意事项

  • 如果你的实际数据集存在同分组同日期的多条数据,排序时可以额外增加其他维度(比如跑者名字)保证排序逻辑稳定
  • cumsum方法会严格按照数据当前的行顺序计算累计值,所以必须提前按你需要的累计顺序对数据做排序

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 16:39:04