【发布时间】:2021-01-08 15:56:43
【问题描述】:
我想根据pandas 中的.groupby() 获得一些百分比率。我的目标是取一个指标列Ind 并得到A(分子)的比率除以当年的总数(A+B)
示例数据:
import pandas as pd
import numpy as np
df: pd.DataFrame = pd.DataFrame([['2011','A',1,2,3], ['2011','B',4,5,6],['2012','A',15,20,4],['2012','B',17,12,12]], columns=["Year","Ind","X", "Y", "Z"])
print(df)
Year Ind X Y Z
0 2011 A 1 2 3
1 2011 B 4 5 6
2 2012 A 15 20 4
3 2012 B 17 12 12
2011 年的示例:XRate 将总结 X 的 A 指标(即 1)并除以总数 (A+B) 即 5,因此我将收到 0.20 的 Xrate。
我想对所有 X、Y、Z 列执行此操作以获取费率。我试过做 lambda apply 但不能完全得到想要的结果。
期望的结果:
Year XRate YRate ZRate
0 2011 0.20 0.29 0.33
1 2012 0.47 0.63 0.25
【问题讨论】:
标签: python pandas dataframe pandas-groupby