我有一个看起来像这样的数据框,df1:
col1 col2
A 2
A 3
A 4
B 4
B 8
现在,我要计算的值的百分比col2
每个独特商品col1
。因此我希望结果是:
col1 col2
A 0.22
A 0.33
A 0.33
B 0.33
B 0.67
因此,col2
对于 中的唯一元素,和必须为 1 col1
。有谁知道如何在不使用 for 循环的情况下做到这一点?
使用GroupBy.transform
了sum
s到系列除以原始列col2
:
df['col2'] /= df.groupby('col1')['col2'].transform('sum')
#working like
#df['col2'] = df['col2'] / df.groupby('col1')['col2'].transform('sum')
print (df)
col1 col2
0 A 0.222222
1 A 0.333333
2 A 0.444444
3 B 0.333333
4 B 0.666667
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句