How to add a column based on groupby and number of occurences?

Viewed 17

I have this DataFrame which is composed of 5 columns:

 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

I created a variable based on groupby() and columns Service and Agent as bellow:

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

I want to add a column in which I can find the number of occurrences of the ['Agent'] column as bellow:

                    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

Thanks for the help!

1 Answers

IIUC:

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