الانتقال إلى المحتوى الرئيسي

كيفية الجمع بين اثنين من إطارات بيانات الباندا في بايثون-دليل بسيط

بايثون هي واحدة من لغات البرمجة الأكثر شعبية لتحليل البيانات. وتوفر مكتبة الباندا أدوات قوية للعمل مع البيانات في بايثون. واحدة من أكثر العمليات شيوعا عند العمل مع البيانات هي الجمع بين اثنين أو أكثر من إطارات البيانات.

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

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

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

  1. استيراد المكتبات اللازمة
  2. إنشاء اثنين من إطارات البيانات للجمع
  3. الجمع بين اثنين من إطارات البيانات حسب العمود
  4. الجمع بين اثنين من إطارات البيانات عن طريق الخط
  5. الجمع بين اثنين من إطارات البيانات باستخدام مفتاح
  6. سؤال وجواب
  7. كيف يمكنني الجمع بين اثنين من إطارات البيانات في الباندا?
  8. ما هي أنواع ينضم هل دمج () دعم وظيفة?
  9. هل من الممكن دمج إطارات البيانات عبر أعمدة متعددة في نفس الوقت?

استيراد المكتبات اللازمة

قبل الجمع بين اثنين من إطارات البيانات في الباندا ، تحتاج إلى استيراد المكتبات اللازمة:

  • الباندا: مكتبة للعمل مع الجداول والبيانات;
  • نومبي: مكتبة لأداء العمليات الحسابية;

لاستيراد المكتبات الضرورية ، استخدم التعليمات البرمجية التالية:

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

بعد تنفيذ رمز استيراد المكتبة ، ستكون جاهزا لدمج إطاري البيانات في الباندا.

إنشاء اثنين من إطارات البيانات للجمع

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

لنفترض أن لدينا اثنين من إطارات البيانات:" دف 1 "و" دف 2 " ، والتي نريد الجمع. دعونا نلقي نظرة على عدة طرق لإنشائها:

  1. إنشاء إطار بيانات من ملف كسف:
  2. دف 1 = بد.اقرأ_سف_ ('ملف1.كسف')

    دف 2 = بد.اقرأ_سف_ ('ملف2.csv’)

  3. Создание датафрейма из файла Excel:
  4. df1 = pd.read_excel(‘file1.xlsx’)

    df2 = pd.read_excel(‘file2.xlsx’)

  5. Создание датафрейма из базы данных:
  6. import sqlite3

    conn = sqlite3.connect(‘database.db’)

    df1 = pd.read_sql_query(‘SELECT * FROM table1’, conn)

    df2 = pd.read_sql_query(‘SELECT * FROM table2’, conn)

  7. Создание датафрейма вручную с помощью словаря:
  8. df1 = pd.DataFrame({‘column1’: [1, 2, 3], ‘column2’: [‘a’, ‘b’, ‘c’]})

    df2 = pd.DataFrame({‘column3’: [4, 5, 6], ‘column4’: [‘d’, ‘e’, ‘f’]})

  9. Создание датафрейма из списков:
  10. data1 = {‘column1’: [1, 2, 3], ‘column2’: [‘a’, ‘b’, ‘c’]}

    data2 = {‘column3’: [4, 5, 6], ‘column4’: [‘d’, ‘e’, ‘f’]}

    df1 = pd.DataFrame(data1)

    df2 = pd.DataFrame(data2)

  11. Создание пустого датафрейма:
  12. df1 = pd.DataFrame()

    df2 = pd.DataFrame()

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

الجمع بين اثنين من إطارات البيانات حسب العمود

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

لدمج اثنين من إطارات البيانات حسب العمود ، اتبع الخطوات التالية:

  1. استيراد وحدة الباندا: استيراد الباندا كما بد
  2. إنشاء اثنين من إطارات البيانات للجمع:
    • دف 1 = بد.إطار البيانات ({'العمود _1': [القيمة _1, القيمة _2,...]})
    • دف 2 = بد.إطار البيانات ({'العمود _2': [القيمة _1, القيمة _2,...]})
  3. استخدم وظيفة الدمج () لدمج إطارات البيانات حسب العمود:
    • ميرجيددف = بد.دمج (دف 1 ، دف 2 ، يسار _ أون= 'عمود _1' ، يمين _ أون= 'عمود _2')

تقبل وظيفة الدمج () إطاري بيانات كإدخال ، بالإضافة إلى معلمتي اليسار واليمين ، والتي تشير إلى أعمدة مشتركة في كلا إطاري البيانات. ستكون النتيجة إطار بيانات جديد يتم فيه دمج البيانات من كلا الجدولين المصدرين.

يوجد أدناه مثال على التعليمات البرمجية التي توضح الجمع بين اثنين من إطارات البيانات حسب العمود:

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

# إنشاء إطار البيانات الأول

دف 1 = بد.داتافريم ({'عدد': [1 ، 2 ، 3],

'اسم': ['أليس' ، ' بوب ' ، 'كارل']})

# إنشاء إطار بيانات ثان

دف 2 = بد.داتافريم ({'عدد': [2 ، 3 ، 4],

'العمر': [25, 30, 35]})

# دمج إطارات البيانات حسب العمود "رقم"

ميرجيددف = بد.دمج (دف 1 ، دف 2 ، يسار-أون= 'رقم' ، يمين-أون= 'رقم')

# إخراج مجتمعة

طباعة إطار البيانات

نتيجة لتنفيذ هذا الرمز ، سيتم الحصول على إطار البيانات المدمج التالي:

العددالاسمالعمر
2بوب25
3كارلا30

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

الجمع بين اثنين من إطارات البيانات عن طريق الخط

في الباندا ، يمكن الجمع بين اثنين من إطارات البيانات عن طريق الخط باستخدام طريقة كونكات (). تسمح لك هذه الطريقة بدمج إطاري بيانات عن طريق إضافة خطوط من إطار بيانات إلى آخر.

لدمج اثنين من إطارات البيانات حسب السطر ، يجب عليك تمرير إطارات البيانات كوسائط إلى الدالة كونكات (). تجمع طريقة كونكات() بين إطارات البيانات حسب السطر افتراضيا ، أي تضيف صفوف إطار بيانات واحد إلى صفوف إطار بيانات آخر.

مثال:

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

# إنشاء إطار البيانات الأول

دف 1 = بد.داتافريم ({'أ': ['أ0' ، ' أ1 ' ، 'أ2' ، 'أ3'],

'ب': ['ب0' ، 'ب1' ، 'ب2' ، 'ب3'],

'ج': ['ج0' ، 'ج1' ، 'ج2' ، 'ج3'],

'د': ['د0' ، 'د1' ، 'د2' ، 'د3']})

# إنشاء إطار بيانات ثان

دف 2 = بد.داتافريم ({'أ': ['أ4' ، 'أ5' ، 'أ6' ، 'أ7'],

'ب': ['B4', 'B5', 'B6', 'B7'],

'C': ['C4', 'C5', 'C6', 'C7'],

'D': ['D4', 'D5', 'D6', 'D7']})

# Объединение двух датафреймов по строке

result = pd.concat([df1, df2])

print(result)

# Результат:

# A B C D

# 0 A0 B0 C0 D0

# 1 A1 B1 C1 D1

# 2 A2 B2 C2 D2

# 3 A3 B3 C3 D3

# 0 A4 B4 C4 D4

# 1 A5 B5 C5 D5

# 2 A6 B6 C6 D6

# 3 A7 B7 C7 D7

Обратите внимание, что после объединения датафреймов, индексы строк продолжаются непрерывно.

Можно также указать параметр ignore_index=True при использовании метода concat(), чтобы сбросить исходные индексы строк и сделать непрерывные индексы:

result = pd.concat([df1, df2], ignore_index=True)

print(result)

# Результат:

# A B C D

# 0 A0 B0 C0 D0

# 1 A1 B1 C1 D1

# 2 A2 B2 C2 D2

# 3 A3 B3 C3 D3

# 4 A4 B4 C4 D4

# 5 A5 B5 C5 D5

# 6 A6 B6 C6 D6

# 7 A7 B7 C7 D7

كما ترى من المثال ، أصبحت فهارس الصفوف مستمرة.

يمكن أن يكون الجمع بين إطاري بيانات حسب الصف مفيدا عندما تحتاج إلى إضافة بيانات من إطار بيانات إلى آخر لإنشاء إطار بيانات واحد مع عدد كبير من الصفوف.

الجمع بين اثنين من إطارات البيانات باستخدام مفتاح

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

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

مثال على استخدام طريقة الدمج() :

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

# Создание первого датафрейма

df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'],

'value1': [1, 2, 3, 4]})

# Создание второго датафрейма

df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'],

'value2': [5, 6, 7, 8]})

# Объединение датафреймов по ключу

merged_df = pd.merge(df1, df2, on='key')

print(merged_df)

Результат:

key value1 value2

0 B 2 5

1 D 4 6

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

توفر طريقة الدمج () العديد من الخيارات لتكوين عملية الدمج ، على سبيل المثال ، يمكنك تحديد كيفية دمج البيانات عند وجود العديد من قيم المفاتيح المطابقة ، أو كيفية التعامل مع القيم المفقودة. تتوفر معلومات أكثر تفصيلا حول معلمات طريقة الدمج () في وثائق مكتبة الباندا.

الجمع بين اثنين أو أكثر من إطارات البيانات باستخدام الأعمدة الرئيسية هو أداة قوية عند العمل مع البيانات. يسمح لك بدمج المعلومات من مصادر مختلفة وإجراء تحليل البيانات بناء على مقارنة الميزات الرئيسية.

سؤال وجواب

كيف يمكنني الجمع بين اثنين من إطارات البيانات في الباندا?

لدمج اثنين من إطارات البيانات في الباندا ، يمكنك استخدام وظيفة الدمج (). فهو يجمع بين إطارات البيانات بناء على قيم عمود أو أعمدة مشتركة. على سبيل المثال ، إذا كان كلا إطاري البيانات يحتويان على عمود "معرف" ، فيمكنك دمجهما في هذا العمود.

ما هي أنواع ينضم هل دمج () دعم وظيفة?

تدعم وظيفة الدمج () أنواعا من الصلات مثل الانضمام الداخلي والانضمام الأيسر والانضمام الأيمن والانضمام الخارجي. يعود الانضمام الداخلي فقط الصفوف التي لها قيم مشتركة في الأعمدة المرتبطة. ترجع الصلة اليسرى جميع الصفوف من إطار البيانات الأيسر (الأول) وفقط تلك الصفوف من إطار البيانات الأيمن (الثاني) التي لها قيم مشتركة. يعمل الانضمام الأيمن بشكل مشابه ، ولكنه يقوم بإرجاع جميع الصفوف من إطار البيانات الأيمن وفقط تلك الصفوف من اليسار التي لها قيم مشتركة. تقوم الصلة الخارجية بإرجاع جميع الصفوف من كلا إطارات البيانات ، وتخزين القيم الفارغة حيث لا توجد قيم مشتركة.

هل من الممكن الجمع بين إطارات البيانات عبر أعمدة متعددة في نفس الوقت?

نعم ، من الممكن دمج إطارات البيانات عبر أعمدة متعددة في نفس الوقت. للقيام بذلك ، قم بتمرير قائمة الأعمدة إلى المعلمة على وظيفة الدمج (). على سبيل المثال ، إذا كان إطار البيانات الأول يحتوي على عمودي "معرف" و "تاريخ" ، والثاني يحتوي على عمودي "معرف" و "وقت" ، فيمكنك دمج إطارات البيانات بواسطة عمودي "معرف" و "تاريخ" باستخدام دمج(دف 1 ، دف 2 ، أون=['معرف' ، 'تاريخ']).