logo

الباندا DataFrame.merge()

الباندا دمج() يتم تعريفها على أنها عملية جمع مجموعتي البيانات معًا في مجموعة واحدة ومحاذاة الصفوف بناءً على السمات أو الأعمدة المشتركة. إنها نقطة دخول لجميع عمليات ربط قاعدة البيانات القياسية بين كائنات DataFrame:

بناء الجملة:

 pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True) 

حدود:

    يمين: DataFrame أو السلسلة المسماة
    إنه كائن يتم دمجه مع DataFrame.كيف: {'يسار'، 'يمين'، 'خارجي'، 'داخلي'}، افتراضي 'داخلي'
    نوع الدمج المطلوب تنفيذه.
      غادر:ويستخدم فقط المفاتيح من الإطار الأيسر، على غرار الصلة الخارجية اليسرى لـ SQL؛ الحفاظ على ترتيب المفاتيح.يمين:يستخدم فقط المفاتيح من الإطار الأيمن، على غرار الصلة الخارجية اليمنى لـ SQL؛ الحفاظ على ترتيب المفاتيح.الخارجي:استخدم اتحاد المفاتيح من كلا الإطارين، على غرار الصلة الخارجية الكاملة لـ SQL؛ فرز المفاتيح معجميا.داخلي:ويستخدم تقاطع المفاتيح من كلا الإطارين، على غرار صلة SQL الداخلية؛ الحفاظ على ترتيب المفاتيح اليسرى.
    على: التسمية أو القائمة
    إنها أسماء عمود أو مستوى فهرس للانضمام إليها. يجب العثور عليه في كل من DataFrames الأيمن والأيسر. إذا كان on بلا شيء ولم يتم دمجه في الفهارس، فسيتم تعيين هذا افتراضيًا على تقاطع الأعمدة في كلا DataFrames.
    تركت على: التسمية أو القائمة، أو مثل المصفوفة
    إنه عمود أو أسماء مستوى الفهرس من DataFrame الأيسر لاستخدامه كمفتاح. يمكن أن يكون مصفوفة بطول يساوي طول DataFrame.الحق علي: التسمية أو القائمة، أو مثل المصفوفة
    إنها أسماء عمود أو مستوى فهرس من DataFrame الصحيح لاستخدامها كمفاتيح. يمكن أن يكون مصفوفة بطول يساوي طول DataFrame.الفهرس الأيسر : منطقي، افتراضي خطأ
    ويستخدم الفهرس من DataFrame الأيسر كمفتاح (مفاتيح) الانضمام، إذا كان صحيحًا. في حالة MultiIndex (التسلسل الهرمي)، يجب أن تتطابق العديد من المفاتيح في DataFrame الأخرى (إما الفهرس أو بعض الأعمدة) مع عدد المستويات.right_index : منطقي، افتراضي خطأ
    يستخدم الفهرس من DataFrame الصحيح كمفتاح الانضمام. له نفس استخدام left_index.نوع: منطقي، افتراضي خطأ
    إذا كان True، فإنه يفرز مفاتيح الانضمام بترتيب معجمي في DataFrame الناتج. بخلاف ذلك، يعتمد ترتيب مفاتيح الانضمام على نوع الربط (كيفية الكلمة الأساسية).اللواحق: مجموعة من (str، str)، الافتراضي ('_x'، '_y')
    يتم تطبيقها على تداخل أسماء الأعمدة في DataFrame الأيمن والأيسر، على التوالي. تستخدم الأعمدة القيم (False، False) لرفع استثناء عند التداخل.ينسخ: منطقي، الافتراضي صحيح
    إذا كان True، فإنه يقوم بإرجاع نسخة من DataFrame.
    خلاف ذلك، فإنه يمكن تجنب النسخة.مؤشر: منطقي أو str، الافتراضي خطأ
    إذا كان صحيحا، فإنه يضيف عمودا لإخراج DataFrame ' _دمج مع معلومات عن مصدر كل صف. إذا كان سلسلة، فسيتم إضافة عمود يحتوي على معلومات عن مصدر كل صف إلى DataFrame الناتج، وسيتم تسمية العمود بقيمة سلسلة. يتم تعريف عمود المعلومات كنوع فئوي ويأخذ قيمة:
      'اليسار فقط'للملاحظات التي يظهر مفتاح الدمج الخاص بها فقط في 'يسار' DataFrame، بينما،'اليمين_فقط'يتم تعريفه للملاحظات التي يظهر فيها مفتاح الدمج فقط في 'يمين' DataFrame،'كلاهما'إذا تم العثور على مفتاح دمج الملاحظة في كل منهما.
    التحقق من صحة: شارع، اختياري
    إذا تم تحديده، فإنه يتحقق من نوع الدمج الموضح أدناه:
    • 'one_to_one' أو '1:1': يتحقق مما إذا كانت مفاتيح الدمج فريدة في كل من مجموعات البيانات اليمنى واليسرى.
    • 'one_to_many' أو '1:m': يتحقق مما إذا كانت مفاتيح الدمج فريدة في مجموعة البيانات اليسرى فقط.
    • 'many_to_one' أو 'm:1': يتحقق مما إذا كانت مفاتيح الدمج فريدة في مجموعة البيانات الصحيحة فقط.
    • 'many_to_many' أو 'm:m': مسموح به، ولكنه لا يؤدي إلى عمليات فحص.

مثال 1: دمج إطاري بيانات على مفتاح

 # import the pandas library import pandas as pd left = pd.DataFrame({ 'id':[1,2,3,4], 'Name': ['John', 'Parker', 'Smith', 'Parker'], 'subject_id':['sub1','sub2','sub4','sub6']}) right = pd.DataFrame({ 'id':[1,2,3,4], 'Name': ['William', 'Albert', 'Tony', 'Allen'], 'subject_id':['sub2','sub4','sub3','sub6']}) print (left) print (right) 

انتاج |

 id Name subject_id 0 1 John sub1 1 2 Parker sub2 2 3 Smith sub4 3 4 Parker sub6 id Name subject_id 0 1 William sub2 1 2 Albert sub4 2 3 Tony sub3 3 4 Allen sub6 

مثال 2: دمج إطاري بيانات على مفاتيح متعددة:

 import pandas as pd left = pd.DataFrame({ 'id':[1,2,3,4,5], 'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id':['sub1','sub2','sub4','sub6','sub5']}) right = pd.DataFrame({ 'id':[1,2,3,4,5], 'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id':['sub2','sub4','sub3','sub6','sub5']}) print pd.merge(left,right,on='id') 

انتاج |

 id Name_x subject_id_x Name_y subject_id_y 0 1 John sub1 William sub2 1 2 Parker sub2 Albert sub4 2 3 Smith sub4 Tony sub3 3 4 Parker sub6 Allen sub6