Pandas 熊猫-每列的百分比值
我还是个初学者,刚刚遇到这个问题 我有一个78行×138列的数据框,如下所示: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
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