根据某些条件删除重复项

时间:2018-07-10 11:40:45

标签: python python-3.x pandas dataframe

我有一个数据框,上面有重复的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

谢谢。

2 个答案:

答案 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')