Pandas 熊猫-每列的百分比值

Pandas 熊猫-每列的百分比值,pandas,percentage,Pandas,Percentage,我还是个初学者,刚刚遇到这个问题 我有一个78行×138列的数据框,如下所示: 2009-01 2009-02 2009-03 2009-04 ... name1 1 1 3 1 name2 0 1 1 1 name3 1 1 1

我还是个初学者,刚刚遇到这个问题

我有一个78行×138列的数据框,如下所示:

        2009-01     2009-02     2009-03     2009-04     ...
name1       1           1           3           1   
name2       0           1           1           1
name3       1           1           1           0
我想要像这样的东西

        2009-01     2009-02     2009-03     2009-04     ...
name1       50%         33%         60%         50%     
name2       0           33%         20%         50%
name3       50%         33%         20%         0

看起来很简单,但我正在努力…

除以
和,然后乘以
100
-输出是数值:

df1 = df.div(df.sum()).mul(100).round()
print (df1)
       2009-01  2009-02  2009-03  2009-04
name1     50.0     33.0     60.0     50.0
name2      0.0     33.0     20.0     50.0
name3     50.0     33.0     20.0      0.0
如果需要所有值百分比:

df = df.div(df.sum()).mul(100).astype(int).astype(str).add('%')
print (df)
      2009-01 2009-02 2009-03 2009-04
name1     50%     33%     60%     50%
name2      0%     33%     20%     50%
name3     50%     33%     20%      0%
如果要为不带
0
的所有值添加百分比(对所有字符串数据使用
0
类似字符串):

df3 = df.div(df.sum()).mul(100).astype(int).astype(str).add('%').mask(df.eq(0), '0')
print (df3)
      2009-01 2009-02 2009-03 2009-04
name1     50%     33%     60%     50%
name2       0     33%     20%     50%
name3     50%     33%     20%       0