代码之家  ›  专栏  ›  技术社区  ›  Laurent S

将groupby().agg复制到每行[重复]

  •  1
  • Laurent S  · 技术社区  · 7 年前

    给定以下数据帧:

    col_a   |   col_b_tosum   
     b      |    5 
     b      |    5
     b      |    1
     c      |    6
     c      |    3
     a      |    2
     a      |    2
    

    我想显示所有行上每个列组的总和,如下所示:

    col_a   |   col_b_tosum   |  group_sum
     b      |    5                 11
     b      |    5                 11
     b      |    1                 11
     c      |    6                 9
     c      |    3                 9
     a      |    2                 4
     a      |    2                 4
    
    0 回复  |  直到 7 年前
        1
  •  2
  •   Scott Boston    7 年前

    使用 groupby 具有 transform :

    df['group_sum'] = df.groupby('col_a')['col_b_tosum'].transform('sum')
    

    输出:

      col_a  col_b_tosum  group_sum
    0     b            5         11
    1     b            5         11
    2     b            1         11
    3     c            6          9
    4     c            3          9
    5     a            2          4
    6     a            2          4