我正在基于称为“ ID”的属性在dbf文件中寻找重复记录。我有各种dbf文件,从500,000条记录到150万条记录,我知道有很多重复项。
我想添加一个ID为“是”或“否”(或1或0很好)的字段“ Duplicate”,当ID属性存在于其他位置时。在字段计算器中使用以下python脚本,对于重复项返回1,对于唯一项返回0;
uniqueList = []
def isDuplicate(inValue):
if inValue in uniqueList:
return 1
else:
uniqueList.append(inValue)
return 0
isDuplicate(!FIELD_NAME!)
但是,第一个记录(例如5个重复ID)也将返回为0(随后的4个被视为重复)。我需要将所有5个标记为重复,因为该ID在其他位置存在。
使用以下代码将为您提供ID出现次数的递增计数,其中1表示第一次出现,以此类推;
UniqueDict = {}
def isDuplicateIndex(inValue):
UniqueDict.setdefault(inValue,0)
UniqueDict[inValue] += 1
return UniqueDict[inValue]
isDuplicateIndex( !YOUR_FIELD! )
如果该记录的ID在其他地方存在,我只想要1(或是)!(ArcGIS版本10.1)
我看到了其他答案,例如用于识别重复记录的Python脚本(跟进),但效果不佳。