繁体   English   中英

如何在 pivot 一个表中获取 Python 中每一行的百分比?

[英]How can I pivot a table and get the percentage of each row in Python?

我有一个 dataframe 有几行,每个都是与主要组不同的子组,就像这样:

group    subgroup    count
A        aaa         10
A        bbb         20
A        ccc         30
B        aaa         10
B        bbb         20

我怎样才能 pivot 这个表并获得每个子组的百分比? 基本上,我想得到这个:

group    subgroup_aaa    subgroup_bbb    subgroup_ccc
A        0.1666          0.33333         0.5
B        0.3333          0.5             0

我们可以尝试使用normalize进行crosstab

s=pd.crosstab(index=df.group,columns=df.subgroup,values=df['count'],
              normalize='index',aggfunc='sum').\
              add_prefix('subgroup_').reset_index()
Out[476]: 
subgroup group  subgroup_aaa  subgroup_bbb  subgroup_ccc
0            A      0.166667      0.333333           0.5
1            B      0.333333      0.666667           0.0

暂无
暂无

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

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