从下面的数据框中,我想添加一个新列,条件是对于每个id
检查最大值。然后将每个id
的每行的最大值放在新列中。
df
id value
1 0
1 0
1 0
2 0
2 1
3 1
3 1
预期结果:
id value new_column
1 0 0
1 0 0
1 0 0
2 0 1
2 1 1
3 1 1
3 1 1
我已经尝试过:
df['new_column'] = df.groupby(['id'])['value'].idxmax()
或者:
df['new_column'] = df.groupby(['id'])['value'].max()
但是这两种方法都不能得到期望的结果。
gb = df.groupby(['id'])['value'].reset_index()
,df =df.merge(gb, on=['id'], how='left')
- czr