Ali Ahmed55 نشر 22 نوفمبر أرسل تقرير نشر 22 نوفمبر السلام عليكم هو اي الفرق مابين الpd.merage و ال pd.concat ؟ 1 اقتباس
0 محمد عاطف17 نشر 22 نوفمبر أرسل تقرير نشر 22 نوفمبر وعليكم السلام ورحمة الله وبركاته. يكمن الفرق بينهما في كيفية دمج البيانات . أولا pd.merge حيث تستخدم لدمج DataFrames بناء على أعمدة مشتركة وهي تشبه كثيرا جملة join في قواعد البيانات. وتأخذ العديد من المعاملات : on وهي لتحديد الأعمدة المشتركة بين DataFrames والتي سيتم الدمج بناء عليها مثل join في قاعدة البيانات. how وهي لتحديد نوع الدمج مثل قواعد البيانات تماما ولها عدة قيم : inner وهي دمج فقط القيم المتشابهة في DataFrame وعدم إستخدام القيم الغير متشابهة. outer وهي دمج جميع القيم مع إضافة قيم فارغة (NaN) إذا لم يوج أى تطابقات. left وهي دمج جميع القيم من DataFrame الذي في اليسار مع القيم المتطابقة من DataFrame الذي في اليمين. right وهي دمج جميع القيم من DataFrame الذي في اليمين مع القيم المتطابقة من DataFrame الذي في اليسار. مثال على الإستخدام : import pandas as pd # إنشاء DataFrames df1 = pd.DataFrame({'ID': [1, 2, 3], 'Name': ['Alice', 'Bob', 'Charlie']}) df2 = pd.DataFrame({'ID': [1, 2, 4], 'Age': [25, 30, 22]}) # دمج DataFrames باستخدام العمود المشترك 'ID' merged_df = pd.merge(df1, df2, on='ID', how='inner') print(merged_df) ولتفاصيل أكثر هذا هو التوثيق الرسمي الخاص بها : https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.merge.html ثانيا pd.concat حيث تستخدم لدمج DataFrames بشكل رأسي أو أفقي. ولا تعتمد على الأعمدة المشتركة كما في merge ويمكنك تحديد المحور الذي يتم الدمج بناء عليه . حيث يتم الدمج إما عبر المحور العمودي (الصفوف) باستخدام axis=0 أو عبر المحور الأفقي (الأعمدة) باستخدام axis=1. مثل import pandas as pd # إنشاء DataFrames df1 = pd.DataFrame({'A': [1, 2, 3]}) df2 = pd.DataFrame({'A': [4, 5, 6]}) # دمج DataFrames بشكل عمودي باستخدام pd.concat concatenated_df = pd.concat([df1, df2], axis=0) # عرض النتيجة print(concatenated_df) # A #0 1 #1 2 #2 3 #0 4 #1 5 #2 6 وهذا هو التوثيق الرسمي لها : https://pandas.pydata.org/docs/reference/api/pandas.concat.html 1 اقتباس
0 عماد شيخ العشرة نشر 22 نوفمبر أرسل تقرير نشر 22 نوفمبر pd.merge تستخدم للدمج العمودي كما أنها تعتمد على المفاتيح Keys أي تعتمد على الدمج حسب المشترك لكن pd.concat يمكنها الدمج إما عموديا أو رأسيا عندما يكون ال axis=0 يدمج عموديا لكن عندما يكون axis=1 فيدمج أفقيا وستخدم لدمج الجداول بأكملها. مثال على merge حيث اعتمد على المفتاح: import pandas as pd data1 = {'key': ['K0', 'K1', 'K2', 'K3'], 'Name':['Jai', 'Princi', 'Gaurav', 'Anuj'], 'Age':[27, 24, 22, 32],} data2 = {'key': ['K0', 'K1', 'K2', 'K3'], 'Address':['Nagpur', 'Kanpur', 'Allahabad', 'Kannuaj'], 'Qualification':['Btech', 'B.A', 'Bcom', 'B.hons']} # Convert the dictionary into DataFrame df = pd.DataFrame(data1) # Convert the dictionary into DataFrame df1 = pd.DataFrame(data2) print(df, "\n\n", df1) res = pd.merge(df, df1, on='key') res مثال على concat حيث تم الدمج افقيا: import pandas as pd df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3']}) display('df1:', df1) df2 = pd.DataFrame({'C': ['C0', 'C1', 'C2', 'C3'], 'D': ['D0', 'D1', 'D2', 'D3']}) display('df2:', df2) display('After concatenating:') display(pd.concat([df1, df2], axis = 1)) فنستخدم حسب المعطيات التي لدينا وعلى حسب المراد فعله. 1 اقتباس
السؤال
Ali Ahmed55
السلام عليكم
هو اي الفرق مابين الpd.merage و ال pd.concat ؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.