'ID'라는 속성을 기반으로 dbf 파일에서 중복 레코드를 찾고 있습니다. 500,000 레코드에서 150 만까지 다양한 dbf 파일이 있으며 중복 된 호스트가 있다는 것을 알고 있습니다.
ID 속성이 다른 곳에있을 때 예 또는 아니오 (또는 1 또는 0은 괜찮음)라는 필드 '중복'을 추가하고 싶습니다. 필드 계산기에서 다음 파이썬 스크립트를 사용하면 중복 항목의 경우 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 개는 중복으로 간주 됨). ID가 다른 곳에 존재하므로 5를 모두 중복으로 표시해야합니다.
다음 코드를 사용하면 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 스크립트 (후속 작업) 와 같은 다른 답변을 보았지만 제대로 작동하지 않습니다.