عند دمج إطاري بيانات باستخدام pandas.merge
في لغة البرمجة بايثون، تحدد الخيارات التي تقوم بتحديدها مدى نوع الاتحاد الذي تريده بين الإطارين. في الشفرة التي قدمتها، تستخدم خاصية how
مع قيمة “left” لتحديد أنك تريد اتحاد الإطار الأيسر مع الإطار الأيمن، وأن أي صفوف في الإطار الأيمن لا تقابلها صفوف في الإطار الأيسر يجب أن تظهر بقيم فارغة.
ومع ذلك، عند فحص الطول النهائي للإطار الذي تم دمجه (temp_2000
في هذه الحالة)، تجد أنه أكبر من الإطار الأصلي (panel
). السبب وراء هذا قد يكون في عملية الدمج نفسها.
من خلال النظر إلى الشفرة، يتضح أن الإطار الذي تم قراءته من الملف (prof_2000
) يتم تنقيحه باستخدام drop_duplicates()
، وهذا يعني أن الصفوف المكررة قد تم حذفها. ومن ثم، عند دمج الإطارين باستخدام pandas.merge
، قد يحدث أن تكون هناك صفوف في الإطار الأيمن التي تتكرر بشكل مختلف مما كان عليه في الإطار الأصلي.
قد تكون الحاجة هنا إلى فحص البيانات المكررة في الإطار الأيمن بعد عملية الدمج لفهم السبب الرئيسي وراء زيادة عدد الصفوف. يمكنك استخدام duplicated()
في prof_2000
لفحص الصفوف المكررة والتحقق من كيفية تأثير حذفها على نتيجة الدمج.
المزيد من المعلومات
عند استعراض الشفرة المقدمة، يظهر أنك تقوم بقراءة إطار البيانات panel
من ملف باستخدام pd.read_csv
، ثم تقوم بتخزين عدد الصفوف الأصلية في المتغير before_len
. بعد ذلك، تقوم بقراءة إطار البيانات الآخر prof_2000
من ملف آخر، وتقوم بحذف الصفوف المكررة باستخدام drop_duplicates()
.
بعد ذلك، تقوم بدمج الإطارين باستخدام pd.merge
باستخدام الخيار how="left"
، وتخزن الإطار الناتج في المتغير temp_2000
. بعد ذلك، تقوم بطباعة عدد الصفوف قبل وبعد الدمج (before_len
و after_len
على التوالي).
الزيادة في عدد الصفوف بعد الدمج قد تكون ناجمة عن الصفوف المتكررة في prof_2000
، والتي تم حذفها باستخدام drop_duplicates()
، ولكن قد تظهر بشكل مختلف بعد الدمج. قد تحتاج إلى فحص قيم الصفوف المتكررة في prof_2000
وفحص كيف تمثل هذه القيم في الإطار المدمج temp_2000
بعد الدمج.
يمكنك استخدام duplicated()
لفحص الصفوف المكررة في prof_2000
واستكشاف كيف يتم التعامل معها أثناء عملية الدمج. قد يكون من المفيد أيضًا طباعة الصفوف المتكررة لفهم كيف يتم حذفها وتأثير ذلك على النتيجة النهائية.