gpt4 book ai didi

python - Pandas 将列转换为总数的百分比

转载 作者:太空狗 更新时间:2023-10-29 20:13:34 33 4
gpt4 key购买 nike

我有一个包含 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%

这似乎应该在 pandas 的能力范围内,但我就是想不通。

提前致谢!

最佳答案

您可以使用基本的 pandas 运算符 .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 之间的比例(或者您可以跳过这一步,将它们存储为比例)。

关于python - Pandas 将列转换为总数的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42006346/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com