我正在尝试计算两个级别分组的列的百分比。我能够像下面显示的那样完成它,但我相信有更好的方法。
df = pd.DataFrame(np.array([["1", 'a', 3],
["1", 'b', 6],
["2", 'a', 9],
["2",'b',5]]),
columns=['week', 'type', 'value'])
df['value'] = pd.to_numeric(df['value'])
df['sum_week'] = df['value'].groupby(df['week']).transform('sum')
df['cb_per_week'] = df['value'] / df['sum_week']
df
我得到以下作为我想要的结果:
week type value sum_week cb_per_week
0 1 a 3 9 0.333333
1 1 b 6 9 0.666667
2 2 a 9 14 0.642857
3 2 b 5 14 0.357143