pandas 带聚合函数的groupby

pandas groupby with aggregate function

我有这个代码:

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

这给出了以下输出:

有没有一种方法可以计算出每个单独的条目除以人数[例如对于行帐户,第 1 天为 17% (6/35),第 4 天为 25% (9/35) 等]

使用MultiIndex.get_level_values with DataFrame.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)