我有一个看起来像这样的DataFrame ......
idn value
0 ID1 25
1 ID1 30
2 ID2 30
3 ID2 50
Run Code Online (Sandbox Code Playgroud)
我想在此框架中添加另一列,即'idn'分组的最大'值'
我想要一个看起来像这样的结果.
idn value max_val
0 ID1 25 30
1 ID1 30 30
2 ID2 30 50
3 ID2 50 50
Run Code Online (Sandbox Code Playgroud)
我可以使用像这样的组来提取'值'的最大值...
df[['idn', 'value']].groupby('idn')['value'].max()
Run Code Online (Sandbox Code Playgroud)
但是,我无法将该结果合并回原始DataFrame.
获得理想结果的最佳方法是什么?
谢谢
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
Run Code Online (Sandbox Code Playgroud)