我在看似极其简单的操作中遇到了麻烦。通过诸如此类的操作从组中获取总数百分比的最简洁方法是什么df.groupby['col1'].size()
。分组后我的 DF 看起来像这样,我只想要总数的百分比。我记得过去使用过此语句的变体,但现在无法使其工作:percent = totals.div(totals.sum(1), axis=0)
原始DF:
A B C
0 77 3 98
1 77 52 99
2 77 58 61
3 77 3 93
4 77 31 99
5 77 53 51
6 77 2 9
7 72 25 78
8 34 41 34
9 44 95 27
Result:
df1.groupby('A').size() / df1.groupby('A').size().sum()
A
34 0.1
44 0.1
72 0.1
77 0.7
到目前为止,这是我想到的,这似乎是相当合理的方法:
df.groupby('col1').size().apply(lambda x: float(x) / df.groupby('col1').size().sum()*100)
我不知道我是否遗漏了一些东西,但看起来你可以做这样的事情:
df.groupby('A').size() * 100 / len(df)
or
df.groupby('A').size() * 100 / df.shape[0]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)