gpt4 book ai didi

python - 计算 pandas DataFrame 中的行百分比?

转载 作者:太空宇宙 更新时间:2023-11-04 06:49:47 24 4
gpt4 key购买 nike

我的数据在 pandas DataFrame 中,如下所示:

cat  val1   val2   val3   val4
A 7 10 0 19
B 10 2 1 14
C 5 15 6 16

我想计算每个值在类别 (cat) 中所占的百分比。

例如,对于类别 Aval1 为 7,行总数为 36。结果值为 7/36,因此 val1 是类别 A 的 19.4%。

我的预期结果如下所示:

cat  val1   val2   val3   val4
A .194 .278 .0 .528
B .370 .074 .037 .519
C .119 .357 .143 .381

有没有简单的方法来计算这个?

最佳答案

div + 总和

对于矢量化解决方案,将沿 axis=0 的数据帧除以其在 axis=1 上的总和。您可以使用 set_index + reset_index 来忽略标识符列。

df = df.set_index('cat')
res = df.div(df.sum(axis=1), axis=0)

print(res.reset_index())

cat val1 val2 val3 val4
0 A 0.194444 0.277778 0.000000 0.527778
1 B 0.370370 0.074074 0.037037 0.518519
2 C 0.119048 0.357143 0.142857 0.380952

关于python - 计算 pandas DataFrame 中的行百分比?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50820659/

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