আমি 'আইডি' নামক বৈশিষ্ট্যের উপর ভিত্তি করে ডিবিএফ ফাইলগুলিতে নকল রেকর্ড খুঁজছি। আমার কাছে 500,000 রেকর্ড থেকে 1.5 মিলিয়ন পর্যন্ত বিভিন্ন ডিবিএফ ফাইল রয়েছে এবং আমি জানি যে এখানে অনেকগুলি নকল রয়েছে।
আইডি বৈশিষ্ট্যটি অন্য কোথাও উপস্থিত থাকলে আমি 'ফিল্ড' নকল করতে চাই যা হ্যাঁ বা না (বা 1 বা 0 জরিমানা) বলে। ফিল্ড ক্যালকুলেটরে নিম্নলিখিত পাইথন স্ক্রিপ্টটি ব্যবহার করে সদৃশ প্রবেশের জন্য 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 টির প্রয়োজন হবে।
নীচের কোডটি ব্যবহার করা আপনাকে সেই আইডি সংখ্যার সাথে প্রথমবারের মতো আরও কতবার আসে তার একটি বার্ষিক গণনা দেয়;
UniqueDict = {}
def isDuplicateIndex(inValue):
UniqueDict.setdefault(inValue,0)
UniqueDict[inValue] += 1
return UniqueDict[inValue]
isDuplicateIndex( !YOUR_FIELD! )
আমি কেবল একটি 1 (বা হ্যাঁ) চাই যদি সেই রেকর্ডটির আইডি অন্য কোথাও উপস্থিত থাকে! (আরকজিআইএস সংস্করণ 10.1)
সদৃশ রেকর্ড সনাক্তকরণের জন্য পাইথন স্ক্রিপ্টের মতো অন্যান্য উত্তরগুলি আমি দেখেছি (ফলোআপ) তবে এটি কার্যকরভাবে কার্যকর হয় না।