繁体   English   中英

如何计算按 python 中的值分组的 dataframe 中的聚合百分比?

[英]How to calculate aggregate percentage in a dataframe grouped by a value in python?

我是 python 的新手,我正在尝试了解如何处理聚合数据和操作。

我有一个 dataframe:

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 是 99 的 SBK 总数的百分比。在这种情况下,它是 9/50 * 100。但我希望对所有行自动完成。 我怎么能 go 关于这个?

  1. 你需要按你想要的列分组,

  2. 按分组列排列。 2.1 可以更改新列的名称。

  3. 添加百分比列。

     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 相同大小的系列,由计数填充,因此您可以划分原始列:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM