我有4列的ID和三类一个数据帧的结果掉进大熊猫转换列的总数的百分比
<80% 80-90 >90
id
1 2 4 4
2 3 6 1
3 7 0 3
我想将其转换为百分比,即:
<80% 80-90 >90
id
1 20% 40% 40%
2 30% 60% 10%
3 70% 0% 30%
这似乎应该在熊猫能力范围内,但我无法弄清楚。
在此先感谢!
我有4列的ID和三类一个数据帧的结果掉进大熊猫转换列的总数的百分比
<80% 80-90 >90
id
1 2 4 4
2 3 6 1
3 7 0 3
我想将其转换为百分比,即:
<80% 80-90 >90
id
1 20% 40% 40%
2 30% 60% 10%
3 70% 0% 30%
这似乎应该在熊猫能力范围内,但我无法弄清楚。
在此先感谢!
为此,您可以使用基本的大熊猫运营商.div
和.sum
,使用axis
参数,以确保计算发生你想要的方式:
cols = ['<80%', '80-90', '>90']
df[cols] = df[cols].div(df[cols].sum(axis=1), axis=0).multiply(100)
df[cols].sum(axis=1
)的总和。 axis=1
使求和发生在行之间,而不是沿列向下。df[cols].div(df[cols].sum(axis=1), axis=0
)。 axis=0
使分区跨列发生。100
结果让他们的比例在0和100之间的百分比,而不是0和1之间
请举例数据框,您的号码是有点硬,在第一眼解释。 – instant
我不知道如何发布数据框,我appologize我的例子失去了它的格式,但我有一个指数的ID和colums <80%,80%-90%和> 90%。那么我有行中的数据,所以第0行可能是[3,4,3]的iindex 1。我想排0索引1有30%,40%,30%。我对大熊猫很陌生,对不起,我仍然不好解释。 – DTATSO
我想它实际上看起来更是这样的: 结果<80%,80%-90%,> 90% ID ,我想: 结果<80%,80 %-90%,> 90% id 1 30%40%30% 2 70%30%0% – DTATSO