名为'的数据集发生了变化。是从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 ??
答案 0 :(得分:0)
好的,我错过了你的评论“意图识别DX_bl和DX_m12不同的行”。
如果要列出这两列不同的所有行,可以使用:
changes[changes['DX_bl'] != changes['DX_m12']]
或等同于:
changes.query('DX_bl != DX_m12')
根据您发布的数据,似乎duplicated()和drop_duplicates()作为文档工作。