الأنواع الأربعة من DataFrame التي تنضم إليها مكتبة Python's pandas

الأنواع الأربعة من DataFrame التي تنضم إليها مكتبة Python's pandas

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





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





اجعل فيديو اليوم

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





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

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

import pandas as pd 

a = pd.DataFrame({"ID": ["001", "002", "003", "004", "005"],
"Fname": ["Ron", "John", "Helen", "Jenny", "Kenny"],
"Lname": ["Keith", "Harley", "Smith", "Kerr-Hislop", "Barber"]})
print(a)

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



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

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





b = pd.DataFrame({"ID": ["001", "002", "003", "004", "005"], 
"Salary": [100000, 700000, 80000, 904750, 604772]})

print(b)

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

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

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





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

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

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

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

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

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

DataFrame.join(other, on=None, how='left/right/inner/outer', lsuffix='', rsuffix='', 
sort=False)

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

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

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

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

1. غادر الانضمام

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

إعادة تعيين كلمة مرور مسؤول windows xp بدون قرص مضغوط
c = a.join(b, how="left", lsuffix = "_left", rsuffix = "_right", sort = True) 
print(c)

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

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

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

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

  رمز يظهر الصلة اليسرى في بايثون's dataframes

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

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

c = b.join(a, how="right", lsuffix = "_right", rsuffix = "_left", sort = True) 
print(c)

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

  رمز يظهر حق الانضمام في بايثون's dataframes

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

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

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

3. الانضمام الداخلي

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

a = pd.DataFrame({"ID": ["001", "002", "003", "004", "005", "006", "007"], 
"Fname": ["Ron", "John", "Helen", "Jenny", "Kenny", "Daryl", "Cathy"],
"Lname": ["Keith", "Harley", "Smith", "Kerr-Hislop", "Barber", "Hooper", "Hope"]})
b = pd.DataFrame({"ID": ["001", "002", "003", "004", "005"],
"Salary": [100000, 700000, 80000, 904750, 604772]})

print(a)
print(b)

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

  قم بإنشاء إطارات بيانات جديدة في Python

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

c = a.join(b, lsuffix="_left", rsuffix="_right", how='inner') 
print(c)

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

  رمز يظهر الصلة الداخلية في بايثون's dataframes

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

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

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

c = a.join(b, lsuffix="_left", rsuffix="_right", how='outer') 
print(c)
  رمز يظهر الصلة الخارجية في بايثون's dataframes

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

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

التوت بي ب مقابل ب +

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