我有一个数据框,上面有重复的ID。我想根据特定条件从计数列中删除重复项。基本上,仅保留计数最高的ID。另外,如果在count列中有所有重复的值都相同的值,则只需保留第一个。
DataFrame:
ID Status Count
12 Match 2
12 NotMatch 1
13 MaybeMatch 3
14 NotMatch 2
15 NotMatch 3
16 Match 2
16 NotMatch 1
17 Match 1
17 MaybeMatch 2
18 Match 1
18 MaybeMatch 1
18 NotMatch 1
结果数据框
ID Status Count
12 Match 2
13 MaybeMatch 3
14 NotMatch 2
15 NotMatch 3
16 Match 2
17 MaybeMatch 2
18 Match 1
谢谢。
答案 0 :(得分:0)
您可以排序和删除重复项:
res = df.sort_values('Count', ascending=False)\
.drop_duplicates('ID')
如果您希望保持订购并包括重复的最大值:
g = df.groupby('ID')['Count'].transform('max')
res = df[df['Count'] == g]
答案 1 :(得分:0)
先排序,然后删除重复项并保留第一条记录:
df = df.sort_values('Count', ascending = False)
df = df.drop_duplicates(subset=['id'], keep = 'first')