Je recherche des enregistrements en double dans des fichiers dbf basés sur l'attribut appelé «ID». J'ai divers fichiers dbf de 500 000 enregistrements à 1,5 million et je sais qu'il existe une multitude de doublons.
Je voudrais ajouter un champ «Dupliquer» qui dit Oui ou Non (ou 1 ou 0 est bien) lorsque l'attribut ID est présent ailleurs. L'utilisation du script python suivant dans Field Calculator renvoie 1 pour une entrée en double et 0 pour une entrée unique;
uniqueList = []
def isDuplicate(inValue):
if inValue in uniqueList:
return 1
else:
uniqueList.append(inValue)
return 0
isDuplicate(!FIELD_NAME!)
Cependant, le 1er enregistrement de, par exemple, 5 ID en double sera également renvoyé sous la forme d'un 0 (les 4 suivants sont considérés comme des doublons). J'aurais besoin que tous les 5 soient marqués comme doublons car l'ID existe ailleurs.
L'utilisation du code suivant vous donnera un compte incrémentiel du nombre de fois que cet ID se produit, 1 signifiant la 1ère occasion, etc.
UniqueDict = {}
def isDuplicateIndex(inValue):
UniqueDict.setdefault(inValue,0)
UniqueDict[inValue] += 1
return UniqueDict[inValue]
isDuplicateIndex( !YOUR_FIELD! )
Je veux juste un 1 (ou Oui) si l'ID de cet enregistrement existe ailleurs! (ArcGIS version 10.1)
J'ai vu d'autres réponses telles que le script Python pour identifier les enregistrements en double (suivi) mais cela ne fonctionne pas tout à fait.