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

如何在Pandas中按Group 1分组计算Count列的总计值?

如何在Pandas分组表格中按Group1计算Count的分组总计

现有一个已应用groupby操作的Pandas表格,索引为Group0和Group1的多层索引,包含Group2和Count列,数据如下:

Group 0Group 1Group 2Count
AX1577.50006
894.87002
X22697.310048
2697.31001
B32697.310030
BC1234.27009
39.27003

需要新增Group 1 Total by Count列,值为同一Group1分组下Count列的总和,得到如下结果:

Group 0Group 1Group 2CountGroup 1 Total by Count
AX1577.500068
894.870028
X22697.31004849
2697.3100149
B32697.31003030
BC1234.2700912
39.2700312

直接用groupby结合transform方法就能实现需求,不需要用cumsum。transform会把分组计算的总和自动广播到该分组的每一行,刚好匹配你的需求。

代码示例

如果你的DataFrame索引是命名为Group0和Group1的多层索引:

df['Group 1 Total by Count'] = df.groupby(level='Group1')['Count'].transform('sum')

如果习惯用索引位置指定(Group1是第2层索引,位置为1):

df['Group 1 Total by Count'] = df.groupby(level=1)['Count'].transform('sum')

原理说明

  • groupby(level='Group1'):按Group1这个索引层级进行分组
  • ['Count'].transform('sum'):对每个分组的Count列求和,transform会保持结果与原DataFrame的行数一致,将分组总和赋值给该组的每一行,这样同一Group1下的所有行都会拥有相同的总计值

执行上述代码后,你的DataFrame就会新增目标列,结果和你期望的完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 15:50:30