كيفية دمج إطارات بيانات متعددة في pandas (مع مثال)


يمكنك استخدام بناء الجملة التالي لدمج DataFrames متعددة مرة واحدة في الباندا:

 import pandas as pd
from functools import reduce

#define list of DataFrames
dfs = [df1, df2, df3]

#merge all DataFrames into one
final_df = reduce(lambda left,right: pd.merge (left,right,on=[' column_name '],
                                            how=' outer '), dfs)

يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا:

مثال: دمج DataFrames متعددة في Pandas

لنفترض أن لدينا إطارات بيانات الباندا الثلاثة التالية التي تحتوي على معلومات حول لاعبي كرة السلة من فرق مختلفة:

 import pandas as pd

#createDataFrames
df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D'],
                    ' points ': [18, 22, 19, 14]})

df2 = pd. DataFrame ({' team ': ['A', 'B', 'C'],
                    ' assists ': [4, 9, 14]})

df3 = pd. DataFrame ({' team ': ['C', 'D', 'E', 'F'],
                    ' rebounds ': [10, 17, 11, 10]})

#view DataFrames
print (df1)

  team points
0 to 18
1 B 22
2 C 19
3 D 14

print (df2)

  team assists
0 to 4
1 B 9
2 C 14

print (df3)

  team rebounds
0 C 10
1 D 17
2 E 11
3 F 10

يمكننا استخدام بناء الجملة التالي لدمج DataFrames الثلاثة في إطار واحد:

 from functools import reduce

#define list of DataFrames
dfs = [df1, df2, df3]

#merge all DataFrames into one
final_df = reduce(lambda left,right: pd.merge (left,right,on=[' team '],
                                            how=' outer '), dfs)

#view merged DataFrame
print (final_df)

  team points assists rebounds
0 A 18.0 4.0 NaN
1 B 22.0 9.0 NaN
2 C 19.0 14.0 10.0
3 D 14.0 NaN 17.0
4 E NaN NaN 11.0
5 F NaN NaN 10.0

والنتيجة النهائية هي DataFrame الذي يحتوي على المعلومات من DataFrames الثلاثة.

لاحظ أنه يتم استخدام قيم NaN لملء الخلايا الفارغة في DataFrame النهائي.

لاستخدام قيمة أخرى غير NaN لملء الخلايا الفارغة، يمكنك استخدام الدالة fillna() :

 from functools import reduce

#define list of DataFrames
dfs = [df1, df2, df3]

#merge all DataFrames into one
final_df = reduce(lambda left,right: pd.merge (left,right,on=[' team '],
                                            how=' outer '), dfs). fillna (' none ')

#view merged DataFrame
print (final_df)

  team points assists rebounds
0 A 18.0 4.0 none
1 B 22.0 9.0 none
2 C 19.0 14.0 10.0
3 D 14.0 none 17.0
4 E none none 11.0
5 F none none 10.0

يتم الآن ملء كل خلية فارغة بـ ” بلا ” بدلاً من NaN .

ملاحظة : يمكنك العثور على الوثائق الكاملة لوظيفة الدمج في الباندا هنا .

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في الباندا:

كيفية دمج اثنين من إطارات بيانات Pandas في ملف Index
كيفية دمج Pandas DataFrames عبر أعمدة متعددة
كيفية تكديس إطارات بيانات Pandas المتعددة

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *