Skip to main content
 首页 » 编程设计

python之将值转换为 %

2025年05月04日13Leo_wl

我在下面有一个数据框,其中包含每家商店的肉类、蔬菜和面包的销售额。我想把值转换成%,比如Store N的值会变成74%、7%和19%。换句话说,74%是肉类销售额占N店总销售额的百分比。最简单的做法是什么?

import pandas as pd 
 
df=pd.DataFrame({'Store':['N','S','E','W'] 
                    ,'Meat':[200,250,100,400] 
                    ,'Veg':[20,100,30,80] 
                    ,'Bread':[50,230,150,100]}) 
df=df[['Store','Meat','Veg','Bread']]     

请您参考如下方法:

不使用循环的纯 pandas 解决方案是:

df.ix[:, 1:] = (df.ix[:, 1:].T / df.ix[:, 1:].sum(1)).T 
print(df) 

结果:

  Store      Meat       Veg     Bread 
0     N  0.740741  0.074074  0.185185 
1     S  0.431034  0.172414  0.396552 
2     E  0.357143  0.107143  0.535714 
3     W  0.689655  0.137931  0.172414