数据框如下所示:
df = pd.DataFrame({'k1':['one']*3 + ['two']*4,'k2':[1,1,2,3,3,4,4]})
当我检查重复项时,通过执行以下操作获得布尔值索引
df.duplicated()
,然后将其用作过滤器
显示不同结果的df[df.duplicated()]
与df.drop_duplicates()
结果中又创建了一行
2 one 2
答案 0 :(得分:2)
drop_duplicate
将删除所有重复的行。当duplicated
具有重复项时,第一项重复项将返回False,其他行将返回True,因此它们是针对不同问题的不同功能目标。
df.duplicated()
0 False
1 True
2 False
3 False
4 True
5 False
6 True
dtype: bool
df.drop_duplicates()
k1 k2
0 one 1
2 one 2
3 two 3
5 two 4
如何使输出相同?
检查唯一值
df[~df.duplicated(keep=False)]
k1 k2
2 one 2
df.drop_duplicates(keep=False)
k1 k2
2 one 2