python - 获取基于另一列但具有不同类别的列的百分比

标签 python pandas dataframe percentage series

我有以下 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%

然后在计算百分比后删除重复列。看起来很简单,但我似乎无法让它发挥作用。任何帮助表示赞赏。

最佳答案

divsum 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/

相关文章:

python - 带有 $$ 的数据框列名称在过滤条件中失败并出现解析错误

python - 在 Pandas Python 中合并时如何避免笛卡尔

python - GCP AI Platform 无法读取存储在 Google Cloud Storage (Python) 中的 .SAV 文件

python - 使用 if/else 语句在 pandas 列中查找特定单词字符串

python-3.x - 根据索引和标签转换数据框

python - 检索与 pandas 中另一列中元素第一次出现相对应的列中的值 - python

Python 列表无法正常工作

python - 如何在循环 Python 中调用不同的函数

python - 如何将数据框中的列与空列之间的值进行匹配

python - 使用python opencv跟踪白色