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
如何计算每个组中的计数百分比?
前输出:
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')
但这并不能满足我的要求。有帮助吗?
最佳答案
您可以使用 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))
关于python - Pandas 按列分组查找每组中的计数百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61802071/