Pandas:如何按标识符分组对指定列求和并新增对应新列?
解决方法
你要的效果用groupby搭配transform方法就能一行代码实现,transform会在分组聚合后返回和原DataFrame长度一致的映射结果,不需要额外做拼接操作,非常简洁:
# 假设你的原DataFrame命名为df df['Total'] = df.groupby('Identifier')['Contribution'].transform('sum')
你可以用你给出的样例数据测试验证:
import pandas as pd # 构造样例数据 df = pd.DataFrame({ 'Identifier': ['Dog', 'Cat', 'Dog', 'Mouse', 'Mouse'], 'Contribution': [3, 1, -1, 2, 2] }) # 新增合计列 df['Total'] = df.groupby('Identifier')['Contribution'].transform('sum')
执行后得到的df和你给出的目标效果完全一致。
内容的提问来源于stack exchange,提问作者loranopro
相关产品推荐
相关产品推荐

