问题描述
我正在尝试根据四个匹配的字段来识别数据帧中的重复项:“ 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之类的差异,因此不会被视为重复项。