كيفية القيام بانضمام يسار في pandas (مع مثال)
يمكنك استخدام بناء الجملة الأساسي التالي لإجراء صلة يسارية في الباندا:
import pandas as pd df1. merge (df2, on=' column_name ', how=' left ')
يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.
مثال: كيفية إجراء صلة يسارية في Pandas
لنفترض أن لدينا إطاري بيانات الباندا التاليين اللذين يحتويان على معلومات حول فرق كرة السلة المختلفة:
import pandas as pd #createDataFrame df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], ' points ': [18, 22, 19, 14, 14, 11, 20, 28]}) df2 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'G', 'H'], ' assists ': [4, 9, 14, 13, 10, 8]}) #view DataFrames print (df1) team points 0 to 18 1 B 22 2 C 19 3 D 14 4 E 14 5 F 11 6 G 20 7:28 a.m. print (df2) team assists 0 to 4 1 B 9 2 C 14 3 D 13 4G 10 5:8 a.m.
يمكننا استخدام التعليمة البرمجية التالية لإجراء صلة يسارية، مع الاحتفاظ بجميع الصفوف من DataFrame الأول وإضافة جميع الأعمدة التي تتطابق بناءً على عمود الفريق في DataFrame الثاني:
#perform left join
df1. merge (df2, on=' team ', how=' left ')
team points assists
0 to 18 4.0
1 B 22 9.0
2 C 19 14.0
3 D 14 13.0
4 E 14 NaN
5 F 11 NaN
6G 20 10.0
7:28 a.m. 8.0
يتم إرجاع كل فريق في DataFrame الأيسر ( df1 ) في DataFrame المدمج ويتم إرجاع الصفوف الموجودة في DataFrame الأيمن ( df2 ) فقط والتي تطابق اسم الفريق في DataFrame الأيسر.
لاحظ أن الفريقين في df2 (الفريقان E وF) اللذان لا يتطابقان مع اسم الفريق في df1 يقومان ببساطة بإرجاع قيمة NaN في عمود المساعدة في DataFrame المدمج.
لاحظ أنه يمكنك أيضًا استخدام pd.merge() بالصيغة التالية لإرجاع النتيجة نفسها تمامًا:
#perform left join
p.d. merge (df1, df2, on=' team ', how=' left ')
team points assists
0 to 18 4.0
1 B 22 9.0
2 C 19 14.0
3 D 14 13.0
4 E 14 NaN
5 F 11 NaN
6G 20 10.0
7:28 a.m. 8.0
لاحظ أن DataFrame المدمج يطابق المثال السابق.
ملاحظة : يمكنك العثور على الوثائق الكاملة لوظيفة الدمج هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في الباندا:
كيفية إجراء عملية مكافحة الانضمام في الباندا
كيفية إجراء صلة داخلية في الباندا
كيفية إجراء صلة متقاطعة في الباندا