لحذف الصفوف المشتركة بين إطاري البيانات في Pandas، يمكنك استخدام الوظيفة merge()
مع الوسيطة indicator=True
لتحديد الصفوف المشتركة، ثم يمكنك تصفية الصفوف المشتركة باستخدام الوظيفة query()
.
اليك الخطوات:
pythonimport pandas as pd
# الإطار الأول
df1 = pd.DataFrame({'col1': ['row1', 'row2', 'row3', 'row4', 'row5']})
# الإطار الثاني
df2 = pd.DataFrame({'col1': ['row2', 'row5']})
# دمج الإطارين مع تحديد الصفوف المشتركة
merged = df1.merge(df2, on='col1', how='outer', indicator=True)
# تصفية الصفوف المشتركة
result = merged.query('_merge != "both"').drop(columns='_merge')
print(result)
الناتج سيكون:
markdown col1
0 row1
2 row3
3 row4
هذا الكود يعمل على الفرض أن الإطارين df1
و df2
لديهما عمود واحد يسمى col1
، وتريد إزالة الصفوف المشتركة استنادًا إلى هذا العمود.
المزيد من المعلومات
بالتأكيد! فيما يلي معلومات إضافية حول كيفية حذف الصفوف المشتركة بين إطاري البيانات في Pandas:
-
استخدام
merge()
مع الوسيطةindicator=True
: عند استخدامmerge()
لدمج إطاري البيانات، يمكنك تحديد الصفوف المشتركة بينهما باستخدام الوسيطةindicator=True
، والتي تضيف عمودًا إضافيًا يحتوي على معلومات حول كيف تم دمج الصفوف. -
تصفية الصفوف المشتركة باستخدام
query()
وdrop()
: بعد دمج الإطارين وتحديد الصفوف المشتركة، يمكنك استخدامquery()
لتحديد الصفوف التي لم تتم دمجها (_merge != "both"
)، ثم استخدامdrop()
لإزالة العمود الإضافي الذي أضافته الوسيطةindicator=True
. -
التحقق من وجود عمود الصف الفريد: تأكد من وجود عمود يمكن استخدامه لتحديد الصفوف بين الإطارين. في المثال السابق، تم استخدام
col1
كعمود لتحديد الصفوف. -
التحكم في عملية الدمج: يمكنك استخدام الوسائط
how='outer'
وon='col1'
فيmerge()
للتحكم في عملية الدمج. يمكنك استخدام قيم مختلفة مثلhow='inner'
للحصول فقط على الصفوف المشتركة. -
التعامل مع إطارات البيانات الكبيرة: إذا كانت إطارات البيانات كبيرة، يمكنك استخدام
merge()
بحيث تدمج فقط الأعمدة اللازمة للحصول على النتيجة المرجوة، وذلك بتحديد الوسائط المناسبة.
باستخدام هذه الإرشادات، يمكنك حذف الصفوف المشتركة بين إطاري البيانات بسهولة وفعالية في Pandas.