بصفتك محلل بيانات ، غالبًا ما تواجه الحاجة إلى دمج مجموعات بيانات متعددة. ستحتاج إلى القيام بذلك لإكمال تحليلك والتوصل إلى استنتاج لعملك / أصحاب المصلحة.

غالبًا ما يكون تمثيل البيانات عند تخزينها في جداول مختلفة أمرًا صعبًا. في مثل هذه الظروف ، تثبت joins قيمتها ، بغض النظر عن لغة البرمجة التي تعمل عليها.

إن صلات Python هي مثل صلات SQL: فهي تجمع مجموعات البيانات عن طريق مطابقة صفوفها في فهرس مشترك.

تكوين اثنين من DataFrames للرجوع اليها

لاتباع الأمثلة في هذا الدليل ، يمكنك إنشاء نموذجين من DataFrames. استخدم التعليمات البرمجية التالية لإنشاء أول DataFrame ، والذي يحتوي على المعرف والاسم الأول واسم العائلة.

يستورد الباندا كما pd

أ = pd. إطار البيانات ({"بطاقة تعريف": ["001", "002", "003", "004", "005"],
"Fname": ["رون", "جون", "هيلين", "جيني", "كيني"],
"Lname": ["كيث", "هارلي", "حداد", "كير هيسلوب", "حلاق"]})
مطبعة(أ)

للخطوة الأولى ، قم باستيراد ملف الباندا مكتبة. يمكنك بعد ذلك استخدام متغير ، أ، لتخزين النتيجة من مُنشئ DataFrame. مرر المُنشئ قاموسًا يحتوي على القيم المطلوبة.

أخيرًا ، اعرض محتويات قيمة DataFrame باستخدام وظيفة الطباعة ، للتحقق من أن كل شيء يبدو كما هو متوقع.

instagram viewer

وبالمثل ، يمكنك إنشاء إطار بيانات آخر ، ب، والتي تحتوي على قيم المعرف والراتب.

ب = pd. إطار البيانات ({"بطاقة تعريف": ["001", "002", "003", "004", "005"],
"مرتب": [100000, 700000, 80000, 904750, 604772]})

مطبعة(ب)

يمكنك التحقق من الإخراج في وحدة تحكم أو IDE. يجب أن تؤكد محتويات DataFrames الخاصة بك:

كيف تختلف عمليات الانضمام عن وظيفة الدمج في بايثون؟

مكتبة الباندا هي واحدة من المكتبات الرئيسية التي يمكنك استخدامها لمعالجة DataFrames. نظرًا لأن DataFrames تحتوي على مجموعات بيانات متعددة ، تتوفر وظائف مختلفة في Python للانضمام إليها.

تقدم Python وظائف الانضمام والدمج ، من بين العديد من الوظائف الأخرى ، والتي يمكنك استخدامها لدمج إطارات البيانات. هناك فرق صارخ بين هاتين الوظيفتين ، والذي يجب أن تضعه في اعتبارك قبل استخدام أي منهما.

تنضم وظيفة الانضمام إلى إطارين من DataFrames استنادًا إلى قيم الفهرس الخاصة بهما. ال تجمع وظيفة الدمج بين إطارات البيانات بناءً على قيم الفهرس والأعمدة.

ما الذي تحتاج لمعرفته حول الانضمام في بايثون؟

قبل مناقشة أنواع الصلات المتاحة ، إليك بعض الأشياء المهمة التي يجب ملاحظتها:

  • صلات SQL هي واحدة من أكثر الوظائف الأساسية وتشبه إلى حد بعيد صلات بايثون.
  • للانضمام إلى DataFrames ، يمكنك استخدام امتداد الباندا. DataFrame.join () طريقة.
  • تؤدي الصلة الافتراضية صلة يسرى ، بينما تؤدي وظيفة الدمج صلة داخلية.

الصيغة الافتراضية لصلة بايثون هي كما يلي:

DataFrame.join (غير ذلك ، تشغيل = لا شيء ، كيف ='يسار / يمين / داخلي / خارجي'، lsuffix =''، rsuffix ='',
نوع =خطأ شنيع)

استدعاء التابع Join على DataFrame الأول وتمرير DataFrame الثاني كمعامل أول ، آخر. الحجج المتبقية هي:

  • على، الذي يسمي فهرسًا للانضمام إليه ، إذا كان هناك أكثر من واحد.
  • كيف، الذي يحدد نوع الصلة ، بما في ذلك الداخلي والخارجي واليسار واليمين.
  • lsuffix، والتي تحدد سلسلة اللاحقة اليسرى لاسم العمود الخاص بك.
  • rsuffix، والذي يحدد سلسلة اللاحقة اليمنى لاسم العمود الخاص بك.
  • فرز، وهي قيمة منطقية تشير إلى ما إذا كان سيتم فرز DataFrame الناتج أم لا.

تعلم كيفية استخدام الأنواع المختلفة من الصلات في بايثون

لدى Python عددًا قليلاً من خيارات الانضمام ، والتي يمكنك ممارستها ، اعتمادًا على حاجة الساعة. فيما يلي أنواع الصلة:

1. انضمام اليسار

تحافظ الصلة اليسرى على قيم DataFrame الأولى كما هي مع إحضار القيم المطابقة من الثانية. على سبيل المثال ، إذا كنت تريد إحضار القيم المطابقة من بيمكنك تعريفه كالتالي:

ج = أ انضم (ب ، كيف ="اليسار"، lsuffix = "_اليسار"، rsuffix = "_حقا"الفرز = صحيح)
مطبعة(ج)

عند تنفيذ الاستعلام ، يحتوي الإخراج على مراجع الأعمدة التالية:

  • ID_left
  • Fname
  • Lname
  • معرف_حق
  • مرتب

تسحب هذه الصلة الأعمدة الثلاثة الأولى من DataFrame الأول ، والعمودين الأخيرين من DataFrame الثاني. لقد استخدمت lsuffix و rsuffix قيم لإعادة تسمية أعمدة المعرّف من مجموعتي البيانات ، مما يضمن أن تكون أسماء الحقول الناتجة فريدة.

الإخراج كالتالي:

2. حق الانضمام

الصلة اليمنى تحافظ على قيم DataFrame الثانية كما هي ، مع جلب القيم المطابقة من الجدول الأول. على سبيل المثال ، إذا كنت تريد إحضار القيم المطابقة من أيمكنك تعريفه كالتالي:

ج = ب انضم (أ ، كيف ="حقا"، lsuffix = "_حقا"، rsuffix = "_اليسار"الفرز = صحيح)
مطبعة(ج)

الإخراج كالتالي:

إذا راجعت الكود ، فهناك بعض التغييرات الواضحة. على سبيل المثال ، تتضمن النتيجة أعمدة DataFrame الثانية قبل أعمدة DataFrame الأول.

يجب عليك استخدام قيمة حقا ل كيف حجة لتحديد الصلة الصحيحة. لاحظ أيضًا كيف يمكنك تبديل ملف lsuffix و rsuffix القيم لتعكس طبيعة الصلة الصحيحة.

في الصلات العادية ، قد تجد نفسك تستخدم الصلات اليسرى والداخلية والخارجية بشكل متكرر ، مقارنةً بالصلة اليمنى. ومع ذلك ، فإن الاستخدام يعتمد كليًا على متطلبات البيانات الخاصة بك.

3. صلة داخلية

توفر الصلة الداخلية الإدخالات المتطابقة من كل من DataFrames. نظرًا لأن الصلات تستخدم أرقام الفهرس لمطابقة الصفوف ، فإن الصلة الداخلية ترجع فقط الصفوف المتطابقة. في هذا الرسم التوضيحي ، دعنا نستخدم إطاري البيانات التاليين:

أ = pd. إطار البيانات ({"بطاقة تعريف": ["001", "002", "003", "004", "005", "006", "007"],
"Fname": ["رون", "جون", "هيلين", "جيني", "كيني", "داريل", "كاثي"],
"Lname": ["كيث", "هارلي", "حداد", "كير هيسلوب", "حلاق", "هوبر", "أمل"]})
ب = pd. إطار البيانات ({"بطاقة تعريف": ["001", "002", "003", "004", "005"],
"مرتب": [100000, 700000, 80000, 904750, 604772]})

مطبعة(أ)
مطبعة(ب)

الإخراج كالتالي:

يمكنك استخدام صلة داخلية ، على النحو التالي:

c = a.join (b، lsuffix ="_اليسار"، rsuffix ="_حقا"، كيف ='داخلي')
مطبعة(ج)

يحتوي الناتج الناتج فقط على الصفوف الموجودة في كلا إطاري DataFrames للإدخال:

4. الانضمام الخارجي

تقوم الصلة الخارجية بإرجاع جميع القيم من كل من DataFrames. بالنسبة للصفوف التي لا تحتوي على قيم مطابقة ، فإنها تنتج قيمة خالية في الخلايا الفردية.

باستخدام نفس DataFrame كما هو مذكور أعلاه ، إليك رمز الصلة الخارجية:

c = a.join (b، lsuffix ="_اليسار"، rsuffix ="_حقا"، كيف ='خارجي')
مطبعة(ج)

استخدام الصلات في بايثون

تقدم الصلات ، مثل وظائف نظيراتها ، الدمج والتسلسل ، أكثر من مجرد وظيفة ربط بسيطة. نظرًا لسلسلة الخيارات والوظائف ، يمكنك اختيار الخيارات التي تلبي متطلباتك.

يمكنك فرز مجموعات البيانات الناتجة بسهولة نسبيًا ، مع أو بدون وظيفة الانضمام ، مع الخيارات المرنة التي تقدمها Python.