首页 > 解决方案 > 如何根据 groupby 和出现次数添加列?

问题描述

我有这个由 5 列组成的 DataFrame:

 print(df)
               Date     Agent   PDF  Pages    Service
        0   2019-11-07  Mery     1    520        A
        1   2019-11-07  Edward   1    569        A
        2   2019-11-07  Mery     2    718        A
        3   2019-11-08  Edward   2    980        A
        4   2019-11-09  Mery     2    717        B
        5   2019-11-09  Edward   3    118        B
        6   2019-12-10  Mery     1    356        B
        7   2019-11-10  Edward   5    248        C
        8   2019-11-11  Mery     3    828        C
        9   2019-11-11  Edward   4    497        C

我基于 groupby() 和列 Service 和 Agent 创建了一个变量,如下所示:

X = df.groupby(['Service','Agent']).sum()
print(X)
                    PDF  Pages    
 Service Agent            
    A    Mery        3   1238  
         Edward      3   1549
    B    Mery        3   1073
         Edward      3   118
    C    Mery        3   828
         Edward      9   745

我想添加一个列,我可以在其中找到 ['Agent'] 列的出现次数,如下所示:

                    PDF  Pages Occu 
 Service Agent            
    A    Mery        3   1238   2
         Edward      3   1549   2
    B    Mery        3   1073   2
         Edward      3   118    1
    C    Mery        3   828    1
         Edward      9   745    2

谢谢您的帮助!

标签: python-3.xpandas-groupby

解决方案


国际大学联盟:

df.groupby(['Service','Agent']).agg({'Pages':sum, 'PDF':sum, 'Agent':len})

推荐阅读