我有以下 Pandas 系列:
Count
Pclass Survived
1 0 80
1 136
2 0 97
1 87
3 0 372
1 119
但是我想要这样的东西:
Count Percentage
Pclass Survived
1 0 80 37.0
1 136 63.0
2 0 97 52.7
1 87 47.3
3 0 372 75.8
1 119 24.2
我只想根据每个中的计数来计算百分比 Pclass 的类别(不是计数的总和)。如果这些就好了 仅使用“计数”列计算百分比。
到目前为止,我所做的是根据 Pclass 汇总计数并使用 .repeat() 复制值并尝试将其连接到原始系列,但失败了。
Count
Pclass
1 216
1 216
2 184
2 184
3 491
3 491
我的想法是使用这个重复列作为计算百分比的分母,如下所示:
80 / 216 * 100 = 37.0%
然后在计算百分比后删除重复列。看起来很简单,但我似乎无法让它发挥作用。任何帮助表示赞赏。
最佳答案
div
和 sum
with level=0
df.assign(Pct=df.div(df.sum(level=0), level=0).round(2) * 100)
Count Pct
Pclass Survived
1 0 80 37.0
1 136 63.0
2 0 97 53.0
1 87 47.0
3 0 372 76.0
1 119 24.0
关于python - 获取基于另一列但具有不同类别的列的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52530316/