从熊猫数据框中删除重复的重复项

时间:2014-12-22 01:16:22

标签: pandas duplicate-removal

我有一个Pandas数据框如下:

df = DataFrame({'id' : [0,1,1,2,2], 'married' : [True,True,False,False,False]})

   id married
0   0    True
1   1    True
2   1   False
3   2   False
4   2   False

我想按照id列对此数据框进行分组,但如果married中的值与id的相同值不相同,也要删除整个重复项我们从使用drop_duplicates方法获得第一行。

df.drop_duplicates(subset=["id"])

   id married
0   0    True
1   1    True
3   2   False

相反,我希望将此作为我的结果

   id married
0   0    True
3   2   False

1 个答案:

答案 0 :(得分:1)

您可以.groupby使用id,然后使用.filter,然后使用.drop_duplicates

>>> pred = lambda obj: obj['married'].nunique() == 1
>>> df.groupby('id').filter(pred).drop_duplicates('id')
   id married
0   0    True
3   2   False