【问题标题】:Pandas - Converting columns in percentage based on first columns valuePandas - 基于第一列值的百分比转换列
【发布时间】:2021-09-05 05:08:31
【问题描述】:

有一个包含总数和计数的数据框:

pd.DataFrame({
            'categorie':['a','b','c'],
            'total':[100,1000,500],
            'x':[10,100,5],
            'y':[100,1000,500]
         })
categorie total x y
a 100 10 100
b 1000 100 1000
c 500 5 500

我喜欢根据总数将计数的列转换为百分比:

categorie total x% y%
a 100 10 100
b 1000 10 100
c 500 1 100

以下内容适用于系列:

(100 * df['x'] / df['total']).round(1)

如何将此应用于数据框中的所有列?

【问题讨论】:

    标签: pandas percentage


    【解决方案1】:

    尝试通过div()mul()astype() 方法:

    df[['x%','y%']]=df[['x','y']].div(df['total'],axis=0).mul(100).astype(int)
    

    df的输出:

        categorie   total   x       y       x%      y%
    0   a           100     10      100     10      100
    1   b           1000    100     1000    10      100
    2   c           500     5       500     1       100
    

    【讨论】:

    • 效果很好,我将详细检查这些方法。谢谢,让我开心。
    猜你喜欢
    • 2020-12-09
    • 2020-11-23
    • 2017-02-24
    • 2021-09-10
    • 2021-05-27
    • 1970-01-01
    • 2023-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多