我有一个包含4列ID和3个类别的数据框
<80% 80-90 >90
id
1 2 4 4
2 3 6 1
3 7 0 3
Run Code Online (Sandbox Code Playgroud)
我想把它转换成百分比,即:
<80% 80-90 >90
id
1 20% 40% 40%
2 30% 60% 10%
3 70% 0% 30%
Run Code Online (Sandbox Code Playgroud)
这似乎应该在熊猫的能力范围内,但我无法弄明白.
提前致谢!
ASG*_*SGM 14
您可以使用基本的pandas运算符执行此操作,.div
并.sum
使用axis
参数确保计算以您希望的方式发生:
cols = ['<80%', '80-90', '>90']
df[cols] = df[cols].div(df[cols].sum(axis=1), axis=0).multiply(100)
Run Code Online (Sandbox Code Playgroud)
df[cols].sum(axis=1
). axis=1
使得求和发生在行之间,而不是沿着列.df[cols].div(df[cols].sum(axis=1), axis=0
)除以数据帧. axis=0
使得除法发生在整个列上.100
使它们的百分比在0到100之间,而不是0到1之间的比例. 归档时间: |
|
查看次数: |
10170 次 |
最近记录: |