Saya mencari rekaman duplikat dalam file dbf berdasarkan atribut yang disebut 'ID'. Saya memiliki berbagai file dbf dari 500.000 catatan hingga 1,5 juta dan saya tahu ada sejumlah duplikat.
Saya ingin menambahkan bidang 'Duplikat' yang bertuliskan Ya atau Tidak (atau 1 atau 0 baik-baik saja) ketika atribut ID ada di tempat lain. Menggunakan skrip python berikut dalam Field Calculator menghasilkan 1 untuk entri duplikat dan 0 untuk entri unik;
uniqueList = []
def isDuplicate(inValue):
if inValue in uniqueList:
return 1
else:
uniqueList.append(inValue)
return 0
isDuplicate(!FIELD_NAME!)
Namun, catatan pertama, misalnya, 5 ID duplikat juga akan dikembalikan sebagai 0 (4 berikutnya dianggap duplikat). Saya perlu semua 5 ditandai sebagai duplikat karena ID ada di tempat lain.
Menggunakan kode berikut akan memberi Anda penghitungan tambahan berapa kali ID terjadi dengan 1 yang berarti kejadian pertama dan seterusnya;
UniqueDict = {}
def isDuplicateIndex(inValue):
UniqueDict.setdefault(inValue,0)
UniqueDict[inValue] += 1
return UniqueDict[inValue]
isDuplicateIndex( !YOUR_FIELD! )
Saya hanya ingin 1 (atau Ya) jika ID dari catatan itu ada di tempat lain! (ArcGIS versi 10.1)
Saya telah melihat jawaban lain seperti skrip Python untuk mengidentifikasi catatan duplikat (tindak lanjut) tetapi tidak cukup berhasil.