age section count
0 13-17 a 160
1 25-34 c 128
2 13-17 d 128
3 25-34 a 120
4 35-44 b 120
5 35-44 a 120
6 25-34 b 112
如何计算每个组中计数的百分比?
Ex输出:
age section count perc
0 13-17 a 160 55.5
1 25-34 c 128 35.5
2 13-17 d 128 44.4
3 25-34 a 120 33.3
4 35-44 b 120 50
5 35-44 a 120 50
6 25-34 b 112 31.1
例如,对于上述示例,年龄13-17
perc
的示例是= 160/288和128/288。
我可以管理的是这个查询:
df.groupby(['age'])['count'].agg('mean')
但是,这并不能满足我的需求。有帮助吗?
答案 0 :(得分:3)
您可以使用Lambda来计算每个年龄段/计数的百分比
df['perc'] = df.groupby('age')['count'].apply(lambda x: x*100/x.sum())
age section count perc
0 13-17 a 160 55.555556
1 25-34 c 128 35.555556
2 13-17 d 128 44.444444
3 25-34 a 120 33.333333
4 35-44 b 120 50.000000
5 35-44 a 120 50.000000
6 25-34 b 112 31.111111
如果要舍入百分比值,
df['perc'] = df.groupby('age')['count'].apply(lambda x: np.round(x*100/x.sum(), 2))