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

如何在Pandas DataFrame中实现跨组累计求和(非组内)

实现跨组累计求和生成CumulativeTotal列

给定如下Pandas DataFrame,包含group和weeklyTotal两列,需要生成第三列CumulativeTotal,实现跨组累计求和(而非组内累计):

import pandas as pd
df = pd.DataFrame({'group':['A','A','A','B','B','B','C','C','C'], 'weeklyTotal':[1,1,1,3,3,3,2,2,2]})

解决方案

可以通过「提取组级唯一值→计算跨组累计→映射回原DataFrame」的方式直接实现,无需额外创建中间表:

# 提取每个组的weeklyTotal唯一值并计算跨组累计求和
group_cum_sum = df.groupby('group')['weeklyTotal'].first().cumsum()
# 将累计值映射到原DataFrame的对应组行
df['CumulativeTotal'] = df['group'].map(group_cum_sum)

结果展示

执行后得到的DataFrame如下:

groupweeklyTotalCumulativeTotal
A11
A11
A11
B34
B34
B34
C26
C26
C26

说明

  • groupby('group')['weeklyTotal'].first():提取每个组的首个weeklyTotal值(因同组值一致,用mean/max等方法结果相同)
  • .cumsum():对组级别的值执行跨组累计求和
  • map(group_cum_sum):将每个组对应的累计值批量赋值给原DataFrame的所有同组行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 08:20:17