如何按分组总和划分熊猫列中的元素

巴克姆

我有一个看起来像这样的数据框,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.transformsums到系列除以原始列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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章