首页 > 解决方案 > Pandas groupby 每组并将每一行除以其总和

问题描述

我有一个df

df = pd.DataFrame({'group':['a','a','b','b','c','c','c'], 'score':[1,2,3,4,5,6,7]})

group score
0   a   1
1   a   2
2   b   3
3   b   4
4   c   5
5   c   6
6   c   7

我想将每一行除以其组的总和。因此对于 a 组,2 行中的每一行将除以 3 (2+1),对于 c 组,3 行中的每一行将除以 18 (5+6+7),给出:

group score
0   a   0.33
1   a   0.67
2   b   0.43
3   b   0.57
4   c   0.28
5   c   0.33
6   c   0.39

我正在考虑使用一种df.groupby('group')['score'].apply(lambda x: x / sum???)方法,但无法弄清楚。任何帮助将不胜感激!

标签: python-3.xpandasgroup-bypandas-groupby

解决方案


推荐阅读