我有一个看起来像这样的数据框......
idn value
0 ID1 25
1 ID1 30
2 ID2 30
3 ID2 50
我想在此框架中添加另一列,即按“idn”分组的最大“值”
我想要一个看起来像这样的结果。
idn value max_val
0 ID1 25 30
1 ID1 30 30
2 ID2 30 50
3 ID2 50 50
我可以像这样使用组提取“值”的最大值......
df[['idn', 'value']].groupby('idn')['value'].max()
但是,我无法将该结果合并回原始数据帧。
获得所需结果的最佳方法是什么?
谢谢
Use the transform
groupby 对象上的方法:
In [5]: df['maxval'] = df.groupby(by=['idn']).transform('max')
In [6]: df
Out[6]:
idn value maxval
0 ID1 25 30
1 ID1 30 30
2 ID2 30 50
3 ID2 50 50
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)