الباندا دمج() يتم تعريفها على أنها عملية جمع مجموعتي البيانات معًا في مجموعة واحدة ومحاذاة الصفوف بناءً على السمات أو الأعمدة المشتركة. إنها نقطة دخول لجميع عمليات ربط قاعدة البيانات القياسية بين كائنات DataFrame:
بناء الجملة:
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True)
حدود:
- 'one_to_one' أو '1:1': يتحقق مما إذا كانت مفاتيح الدمج فريدة في كل من مجموعات البيانات اليمنى واليسرى.
- 'one_to_many' أو '1:m': يتحقق مما إذا كانت مفاتيح الدمج فريدة في مجموعة البيانات اليسرى فقط.
- 'many_to_one' أو 'm:1': يتحقق مما إذا كانت مفاتيح الدمج فريدة في مجموعة البيانات الصحيحة فقط.
- 'many_to_many' أو 'm:m': مسموح به، ولكنه لا يؤدي إلى عمليات فحص.
إنه كائن يتم دمجه مع DataFrame.
نوع الدمج المطلوب تنفيذه.
إنها أسماء عمود أو مستوى فهرس للانضمام إليها. يجب العثور عليه في كل من DataFrames الأيمن والأيسر. إذا كان on بلا شيء ولم يتم دمجه في الفهارس، فسيتم تعيين هذا افتراضيًا على تقاطع الأعمدة في كلا DataFrames.
تركت على: التسمية أو القائمة، أو مثل المصفوفة
إنه عمود أو أسماء مستوى الفهرس من DataFrame الأيسر لاستخدامه كمفتاح. يمكن أن يكون مصفوفة بطول يساوي طول DataFrame.
إنها أسماء عمود أو مستوى فهرس من DataFrame الصحيح لاستخدامها كمفاتيح. يمكن أن يكون مصفوفة بطول يساوي طول DataFrame.
ويستخدم الفهرس من DataFrame الأيسر كمفتاح (مفاتيح) الانضمام، إذا كان صحيحًا. في حالة MultiIndex (التسلسل الهرمي)، يجب أن تتطابق العديد من المفاتيح في DataFrame الأخرى (إما الفهرس أو بعض الأعمدة) مع عدد المستويات.
يستخدم الفهرس من DataFrame الصحيح كمفتاح الانضمام. له نفس استخدام left_index.
إذا كان True، فإنه يفرز مفاتيح الانضمام بترتيب معجمي في DataFrame الناتج. بخلاف ذلك، يعتمد ترتيب مفاتيح الانضمام على نوع الربط (كيفية الكلمة الأساسية).
يتم تطبيقها على تداخل أسماء الأعمدة في DataFrame الأيمن والأيسر، على التوالي. تستخدم الأعمدة القيم (False، False) لرفع استثناء عند التداخل.
إذا كان True، فإنه يقوم بإرجاع نسخة من DataFrame.
خلاف ذلك، فإنه يمكن تجنب النسخة.
إذا كان صحيحا، فإنه يضيف عمودا لإخراج DataFrame ' _دمج مع معلومات عن مصدر كل صف. إذا كان سلسلة، فسيتم إضافة عمود يحتوي على معلومات عن مصدر كل صف إلى DataFrame الناتج، وسيتم تسمية العمود بقيمة سلسلة. يتم تعريف عمود المعلومات كنوع فئوي ويأخذ قيمة:
إذا تم تحديده، فإنه يتحقق من نوع الدمج الموضح أدناه:
مثال 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