根据条件选择列中的最大值

时间:2019-08-21 15:56:10

标签: python python-3.x pandas numpy

我有两栏。 ID和百分比。有些ID不是唯一的。假设我有ID 233、233、277、277。以及相应的百分比:4.5%,7%,3%,1%。我需要选择最高每个ID的百分比。结果是:233-7%,277-3%。

我编写的代码返回了整个列的最大值,而不是特定的非唯一ID。

df['help_column'] = np.where(df.duplicated() ==True, max(df['percentage']),0)

由于整个列中的最高值为33%,所以ID 233为33%,ID 277为33%,而不是期望的结果。谢谢

2 个答案:

答案 0 :(得分:3)

这更像是transform

df['help_column'] = df.groupby('ID')['percentage'].transform('max')

答案 1 :(得分:1)

尝试一下

df.groupby(['ID'])['percentage'].max()