根据分组计算列的百分比

时间:2021-06-06 18:45:59

标签: pandas group-by pandas-groupby

我正在尝试计算两个级别分组的列的百分比。我能够像下面显示的那样完成它,但我相信有更好的方法。

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

0 个答案:

没有答案