ฉันกำลังมองหาระเบียนที่ซ้ำกันในไฟล์ dbf ตามคุณลักษณะที่เรียกว่า 'ID' ฉันมีไฟล์ dbf ต่าง ๆ จาก 500,000 เรคคอร์ดถึง 1.5 ล้านและฉันรู้ว่ามีโฮสต์ของการซ้ำซ้อน
ฉันต้องการเพิ่มฟิลด์ 'ทำซ้ำ' ซึ่งระบุว่าใช่หรือไม่ใช่ (หรือ 1 หรือ 0 ใช้ได้) เมื่อมีแอตทริบิวต์ ID อยู่ที่อื่น การใช้สคริปต์ python ต่อไปนี้ใน Field Calculator ส่งคืน 1 สำหรับรายการที่ซ้ำกันและ 0 สำหรับรายการที่ไม่ซ้ำ
uniqueList = []
def isDuplicate(inValue):
if inValue in uniqueList:
return 1
else:
uniqueList.append(inValue)
return 0
isDuplicate(!FIELD_NAME!)
อย่างไรก็ตามระเบียนที่ 1 ของเช่น 5 รหัสซ้ำกันจะถูกส่งกลับเป็น 0 (4 ต่อมาถือเป็นรายการที่ซ้ำกัน) ฉันจะต้องทำเครื่องหมายทั้ง 5 รายการว่าซ้ำกันเนื่องจากมี ID อยู่ที่อื่น
การใช้รหัสต่อไปนี้จะให้จำนวนที่เพิ่มขึ้นของคุณกี่ครั้งที่ ID เกิดขึ้นกับ 1 หมายถึงโอกาสที่ 1 เป็นต้น
UniqueDict = {}
def isDuplicateIndex(inValue):
UniqueDict.setdefault(inValue,0)
UniqueDict[inValue] += 1
return UniqueDict[inValue]
isDuplicateIndex( !YOUR_FIELD! )
ฉันต้องการ 1 (หรือใช่) ถ้ามี ID ของบันทึกนั้นอยู่ที่อื่น! (ArcGIS เวอร์ชั่น 10.1)
ฉันได้เห็นคำตอบอื่น ๆ เช่นสคริปต์ Python สำหรับการระบุระเบียนที่ซ้ำกัน (ติดตาม)แต่มันก็ไม่ได้ผล