【发布时间】:2018-09-10 12:35:30
【问题描述】:
从以下数据框中,我尝试添加一个新列,条件是每个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')
标签: python pandas dataframe group-by pandas-groupby