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

如何在Pandas中基于分组求和为DataFrame新增列?

解决方案

要给原DataFrame新增每个人员的销售总额列,最简单的方法是使用groupby结合transform方法,它会将分组聚合的结果广播到原DataFrame的每一行,保持数据形状一致。

完整实现代码

import pandas as pd

df = pd.DataFrame({'Person':['John','David','Mary','John','David','Mary'],
                   'Sales':[10,15,20,11,12,18],
                   })

# 新增Total列
df['Total'] = df.groupby('Person')['Sales'].transform('sum')

print(df)

输出结果

Person  Sales  Total
0   John     10     21
1  David     15     27
2   Mary     20     38
3   John     11     21
4  David     12     27
5   Mary     18     38

为什么之前的方法不适用?

你之前执行的df.groupby('Person').sum()属于聚合操作,它会将每个分组的结果合并为一行,最终生成一个以Person为索引的新DataFrame,形状和原数据不一致。而transform方法会将分组计算的结果(每个人员的销售总额)映射到该组的每一行记录上,完美匹配原DataFrame的行数和结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 00:20:43