Pandas duplicated和drop_duplicated无法正常工作

时间:2017-10-13 22:41:18

标签: python pandas

名为'的数据集发生了变化。是从RID的合并中获得的:

changes.head()

    DX_bl  RID  DX_m12
0      1    3       1
1      0    4       0
2      0    6       0
3      0    8       0
4      1   10       1

我使用了以下两个命令,目的是识别DX_bl和DX_m12不同的行:

print(changes[~changes.duplicated(subset = ['DX_bl','DX_m12'], keep=False)])
print(changes.drop_duplicates(subset = ['DX_bl','DX_m12']))


    DX_bl  RID  DX_m12
64      1  167       0


    DX_bl  RID  DX_m12
0       1    3       1
1       0    4       0
10      0   30       1
64      1  167       0

如果keep=False,则应返回第10行(RID 30)和第64行(RID 64)。但是,正如我们所看到的,它丢失了第10行(RID 30)的信息。

另一方面,如果'保持'在默认选项(keep = 'first')中,它错误地返回第0行(RID 3)和第1行(RID 4)。

熊猫中是否有虫子?复制/ drop_duplicates ??

1 个答案:

答案 0 :(得分:0)

好的,我错过了你的评论“意图识别DX_bl和DX_m12不同的行”。

如果要列出这两列不同的所有行,可以使用:

changes[changes['DX_bl'] != changes['DX_m12']]

或等同于:

changes.query('DX_bl != DX_m12')

根据您发布的数据,似乎duplicated()和drop_duplicates()作为文档工作。