如何解决如何计算数据框中按python中的值分组的总百分比?
我是python的新手,我试图了解如何处理数据聚合和操作。
我有一个数据框:
df3
Out[122]:
SBK SSC CountRecs
0 99 22 9
1 99 12 10
2 99 121 11
3 99 138 12
4 99 123 8
... ... ...
160247 184 1318 1
160248 394 2659 1
160249 412 757 1
160250 357 1312 1
160251 202 106 1
我想在整个数据框架中了解每个SBK的CountRecs百分比。 例如,在这种情况下,我想了解80618是SBK总数加99的百分比。在这种情况下,它是9/50 *100。但是我希望对所有行都自动进行此操作。我该怎么办?
解决方法
-
您需要按所需列分组,
-
按分组列进行marge。 2.1您可以更改新列的名称。
-
添加百分比列。
a = df3.merge(pd.DataFrame(df3.groupby('SBK' ['CountRecs'].sum()),on='SBK') df3['percent'] = (a['CountRecs_x']/a['CountRecs_y']) *100 df3
将GroupBy.transform
用于具有与原始DataFrame相同大小的Series(按计数填充),因此可以划分原始列:
df3['percent'] = df3['CountRecs'] / df3.groupby('SBK')['CountRecs'].transform('sum') * 100
print (df3)
SBK SSC CountRecs percent
0 99 22 9 18.0
1 99 12 10 20.0
2 99 121 11 22.0
3 99 138 12 24.0
4 99 123 8 16.0
160247 184 1318 1 100.0
160248 394 2659 1 100.0
160249 412 757 1 100.0
160250 357 1312 1 100.0
160251 202 106 1 100.0
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。