【问题标题】:Column sum in pandas groupbypandas groupby中的列总和
【发布时间】:2021-12-31 03:53:18
【问题描述】:

下面是数据框

Skill   Category    Location    Market Type Count
Java    Cat1        Europe      Tier1   A    2       
Java    Cat1        Europe      Tier1   B    1       
Java    Cat1        Europe      Tier1   C    1       
Java    Cat2        Asia        Tier2   D    1       
Java    Cat3        Asia        Tier1   E    1       

以下是预期的输出数据帧

Skill   Category    Location    Market Type Count   Sum_Market
Java    Cat1        Europe      Tier1   A    2       4
Java    Cat1        Europe      Tier1   B    1       4
Java    Cat1        Europe      Tier1   C    1       4
Java    Cat2        Asia        Tier2   D    1       1
Java    Cat3        Asia        Tier1   E    1       1

问题陈述:Sum_Market 应该使用特定技能、类别、位置的 groupby 以及每个选择中的市场层级的总和来完成。 以下是我的尝试:

df.groupby(['Skill','Category','Location','Market','Type'])['count'].sum()

【问题讨论】:

    标签: python pandas dataframe group-by pivot-table


    【解决方案1】:

    只需合并回原来的:

    df.merge(
    df.groupby(['Skill','Category','Location','Market','Type'])['count'].sum().rename('Sum_Market').reset_index()
    )
    

    【讨论】:

      【解决方案2】:

      使用

      df['Sum_Market'] = df.groupby(['Skill','Category','Location'])['Count'].transform('sum')
      

      OUTPUT

        Skill Category Location Market Type  Count  Sum_Market
      0  Java     Cat1   Europe  Tier1    A      2           4
      1  Java     Cat1   Europe  Tier1    B      1           4
      2  Java     Cat1   Europe  Tier1    C      1           4
      3  Java     Cat2     Asia  Tier2    D      1           1
      4  Java     Cat3     Asia  Tier1    E      1           1
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-05-04
        • 2019-06-08
        • 2020-10-04
        • 2022-07-19
        • 1970-01-01
        相关资源
        最近更新 更多