简体   繁体   English

pandas groupby 与聚合 function

[英]pandas groupby with aggregate function

I have this code:我有这个代码:

october_data_grouped = october_data.groupby(["Department", "Headcount", "Day"]).agg({'User ID': 'nunique'})
october_data_grouped.unstack(fill_value=0)

And this gives the output below:这给出了下面的 output:

在此处输入图像描述

Is there a way I can make a calculation that each individual entry is divided by the headcount [eg for row Accounts, day 1 would be 17% (6/35), day 4 would be 25% (9/35) etc.]有没有一种方法可以计算每个单独的条目除以人数[例如,对于行帐户,第 1 天将是 17% (6/35),第 4 天将是 25% (9/35) 等]

Use MultiIndex.get_level_values with DataFrame.div :MultiIndex.get_level_valuesDataFrame.div一起使用:

#for avoid MultiIndex in columns
october_data_grouped = (october_data.groupby(["Department", "Headcount", "Day"])['User ID']
                                    .nunique()
                                    .unstack(fill_value=0))

idx = october_data_grouped.index.get_level_values('Headcount')
october_data_grouped = october_data_grouped.div(idx, axis=0)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM