【问题标题】:Pandas: combine groupby-apply with join/mergePandas:将 groupby-apply 与 join/merge 结合起来
【发布时间】:2018-01-04 23:53:17
【问题描述】:

我经常发现自己在数据帧上执行 groupby-apply,然后将结果与原始数据帧合并。这是一个例子。假设df 有 A 列和 B 列。我想添加另一列,其值是 B 列与当前行具有相同 A 列值的所有行的总和。以下内容可以完成这项工作,但显然不是最佳的

df.join(df.groupby('A')['B'].sum(), on='A', rsuffix='_sum')

是否可以将原始索引保留在 groupby-sum 中?

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    你可以使用groupby.transform:

    df['B_sum'] = df.groupby('A').B.transform('sum')
    

    演示

    df = pd.DataFrame({
            'A': [1,1,2,2],
            'B': [1,2,3,4]
        })
    
    df['B_sum'] = df.groupby('A').B.transform('sum')
    
    df
    #   A   B   B_sum
    #0  1   1   3
    #1  1   2   3
    #2  2   3   7
    #3  2   4   7
    

    【讨论】:

      猜你喜欢
      • 2013-06-03
      • 1970-01-01
      • 1970-01-01
      • 2013-11-27
      • 2016-12-29
      • 2015-05-19
      • 2011-06-05
      • 2011-12-10
      • 2020-06-08
      相关资源
      最近更新 更多