有一个包含总数和计数的数据框:
pd.DataFrame({
'categorie':['a','b','c'],
'total':[100,1000,500],
'x':[10,100,5],
'y':[100,1000,500]
})
类别 | 全部的 | X | 和 |
---|---|---|---|
一种 | 100 | 10 | 100 |
乙 | 1000 | 100 | 1000 |
C | 500 | 5 | 500 |
我喜欢根据总数将计数列转换为百分比:
类别 | 全部的 | X% | 和% |
---|---|---|---|
一种 | 100 | 10 | 100 |
乙 | 1000 | 10 | 100 |
C | 500 | 1 | 100 |
以下将适用于一系列:
(100 * df['x'] / df['total']).round(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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句