如何在另一列值相同时计算指定列的分组求和(附示例)
解决方案
没问题,这在pandas里可以轻松实现,核心是用groupby搭配transform方法——transform的作用就是把分组计算的结果"广播"回原DataFrame的每一行,正好满足你要让同一分组所有行都显示该组总和的需求。
步骤演示
首先先构造符合你描述的DataFrame(如果你的实际列名不同,替换成自己的列名即可):
import pandas as pd data = { '分组': ['A', 'A', 'A', 'B', 'A', 'B'], '数值': [2, 1, 3, 22, 0, 8] } df = pd.DataFrame(data)
然后执行以下代码新增cum.sum列:
df['cum.sum'] = df.groupby('分组')['数值'].transform('sum')
最终结果
运行后得到的DataFrame就是你想要的效果:
分组 数值 cum.sum 0 A 2 6 1 A 1 6 2 A 3 6 3 B 22 31 4 A 0 6 5 B 8 31
简单解释
groupby('分组'):按照指定的分组列对数据进行分组['数值']:指定要计算总和的目标数值列transform('sum'):对每个分组计算总和,然后将结果对应填充到原DataFrame的每一行,这样同一分组的所有行都会显示该组的求和结果。
内容的提问来源于stack exchange,提问作者Андрей Севостьянов
相关产品推荐
相关产品推荐

