数据框中的重复行,使用多个字段检查重复

问题描述

我正在尝试根据四个匹配的字段来识别数据帧中的重复项:“ dhid_y”,“ from_y”,“ to_y”和“ bound_y”。下面的代码,在数据框上使用.duplicated并带有“子集”,指向正在考虑的四个字段。结果应该是将重复项标记为“ true”,并且第一次出现应保留为“ false”。稍后我将在脚本中使用此信息。但是,并非所有重复项都被发现。仅使用dhid_y似乎可以工作,但是当我添加其他字段时,它似乎行为不正常-尽管确实可以运行!

import pandas as pd

df_merged = pd.read_csv('merged_example_matched.csv')

conditions_2 = [(df_merged.duplicated(subset=['dhid_y','from_y','to_y','bound_y'],keep='first')) == True]
print(conditions_2)

我在使用此重复选项的方式中是否缺少明显的东西?

duplicated expected to be identified with code

rows code identifies as duplicated

highlighted entries which should have been identified as duplicates but were not by my code

解决方法

该代码是正确的,但需要四舍五入到3d.p。在我的数字字段中查找重复项之前。我的“匹配”字段之间存在0.00000001之类的差异,因此不会被视为重复项。