Estou procurando registros duplicados em arquivos dbf com base no atributo chamado 'ID'. Eu tenho vários arquivos dbf de 500.000 registros a 1,5 milhão e sei que há uma série de duplicatas.
Eu gostaria de adicionar um campo 'Duplicar' que diga Sim ou Não (ou 1 ou 0 está correto) quando o atributo ID estiver presente em outro lugar. O uso do seguinte script python na Calculadora de campo retorna 1 para uma entrada duplicada e 0 para uma entrada exclusiva;
uniqueList = []
def isDuplicate(inValue):
if inValue in uniqueList:
return 1
else:
uniqueList.append(inValue)
return 0
isDuplicate(!FIELD_NAME!)
No entanto, o 1º registro, por exemplo, de 5 IDs duplicados também será retornado como 0 (os 4 subsequentes são considerados duplicados). Eu precisaria que todos os 5 fossem marcados como duplicados, pois o ID existe em outro lugar.
O uso do código a seguir fornecerá uma contagem incremental de quantas vezes esse ID ocorre com 1, significando a 1ª ocasião e assim por diante;
UniqueDict = {}
def isDuplicateIndex(inValue):
UniqueDict.setdefault(inValue,0)
UniqueDict[inValue] += 1
return UniqueDict[inValue]
isDuplicateIndex( !YOUR_FIELD! )
Eu só quero um 1 (ou Sim) se o ID desse registro existir em outro lugar! (ArcGIS versão 10.1)
Eu já vi outras respostas, como o script Python, para identificar registros duplicados (acompanhamento), mas não funciona muito bem.