الباندا: تحقق مما إذا كانت السلسلة تحتوي على سلاسل فرعية متعددة
يمكنك استخدام الطرق التالية للتحقق مما إذا كانت السلسلة في pandas DataFrame تحتوي على سلاسل فرعية متعددة:
الطريقة الأولى: التحقق مما إذا كانت السلسلة تحتوي على إحدى السلاسل الفرعية المتعددة
df[' string_column ']. str . contains (' | ' .join ([' string1 ',' string2 ']))
الطريقة الثانية: التحقق مما إذا كانت السلسلة تحتوي على سلاسل فرعية متعددة
df[' string_column ']. str . contains ( r'^(?=.*string1)(?=.*string2)' )
توضح الأمثلة التالية كيفية استخدام كل طريقة عمليًا مع الباندا DataFrame التالية:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' team ': ['Good East Team', 'Good West Team', 'Great East Team',
'Great West Team', 'Bad East Team', 'Bad West Team'],
' points ': [93, 99, 105, 110, 85, 88]})
#view DataFrame
print (df)
team points
0 Good East Team 93
1 Good West Team 99
2 Great East Team 105
3 Great West Team 110
4 Bad East Team 85
5 Bad West Team 88
مثال 1: التحقق مما إذا كانت السلسلة تحتوي على واحدة من عدة سلاسل فرعية
يمكننا استخدام بناء الجملة التالي للتحقق مما إذا كانت كل سلسلة في عمود الفريق تحتوي إما على السلسلة الفرعية “جيد” أو “هو”:
#create new column that checks if each team name contains 'Good' or 'East'
df[' good_or_east '] = df[' team ']. str . contains (' | ' .join ([' Good ',' East ']))
#view updated DataFrame
print (df)
team points good_or_east
0 Good East Team 93 True
1 Good West Team 99 True
2 Great East Team 105 True
3 Great West Team 110 False
4 Bad East Team 85 True
5 Bad West Team 88 False
يُرجع عمود good_or_east الجديد القيم التالية:
- صحيح إذا كان الفريق يحتوي على “جيد” أو “هو”
- خطأ إذا كان الفريق لا يحتوي على “جيد” أو “هو”
ملاحظة : | المشغل يعني “أو” في الباندا.
مثال 2 : التحقق مما إذا كانت السلسلة تحتوي على سلاسل فرعية متعددة
يمكننا استخدام الصيغة التالية للتحقق مما إذا كانت كل سلسلة في عمود الفريق تحتوي على السلسلة الفرعية “جيد” و “هو”:
#create new column that checks if each team name contains 'Good' and 'East'
df[' good_and_east '] = df[' team ']. str . contains ( r'^(?=.*Good)(?=.*East)' )
#view updated DataFrame
print (df)
team points good_and_east
0 Good East Team 93 True
1 Good West Team 99 False
2 Great East Team 105 False
3 Great West Team 110 False
4 Bad East Team 85 False
5 Bad West Team 88 False
يُرجع العمود الجديد good_and_east القيم التالية:
- صحيح إذا كان الفريق يحتوي على “جيد” و”هو”
- خطأ إذا كان الفريق لا يحتوي على “جيد” و”هو”
لاحظ أنه يتم إرجاع قيمة True واحدة فقط نظرًا لوجود اسم فريق واحد فقط يحتوي على السلسلة الفرعية “الجيدة” والسلسلة الفرعية “الشرقية”.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في الباندا:
الباندا: إضافة عمود من DataFrame إلى آخر
الباندا: احصل على صفوف غير موجودة في DataFrame آخر
الباندا: كيفية التحقق من تساوي الأعمدة المتعددة