الباندا: كيفية مقارنة السلاسل بين عمودين


يمكنك استخدام بناء الجملة الأساسي التالي لمقارنة السلاسل بين عمودين في pandas DataFrame:

 df[' col1 ']. str . strip (). str . lower () == df[' col2 ']. str . strip (). str . lower ()

تقوم الدالة str.strip() بإزالة المسافات من كل سلسلة وتقوم الدالة str.lower() بتحويل كل سلسلة إلى أحرف صغيرة قبل إجراء المقارنة.

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

مثال: مقارنة السلاسل بين عمودين في الباندا

لنفترض أن لدينا DataFrame الباندا التالي الذي يحتوي على عمودين بأسماء فريق كرة السلة:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team1 ': ['Mavs', 'Hawks', 'Nets', 'Hornets', 'Lakers'],
                   ' team2 ': ['Mavs', 'Jazz', 'Nets', 'Hornets', 'LAKERS']})

#view DataFrame
print (df)

     team1 team2
0 Mavs Mavs 
1 Hawks Jazz
2 Nets Nets
3 Hornets Hornets 
4 Lakers LAKERS

لاحظ أن بعض أسماء الفرق تحتوي على مسافات في أماكن عشوائية وبعض أسماء الفرق مكتوبة بالأحرف الكبيرة.

لنفترض أننا نريد مقارنة السلاسل في كل صف لمعرفة ما إذا كانت أسماء الفرق متساوية في كل صف.

إذا استخدمنا الرمز == فقط عند مقارنة السلاسل، فلن تُرجع الباندا صحيحًا إلا إذا كانت في نفس الحالة وتحتوي على مسافات في نفس المواضع تمامًا:

 #create new column that tests if strings in team columns are equal
df[' equal '] = df[' team1 '] == df[' team2 ']

#view updated DataFrame
print (df)

     team1 team2 equal
0 Mavs Mavs False
1 Hawks Jazz False
2 Nets Nets True
3 Hornets Hornets False
4 Lakers LAKERS False

لاحظ أن سطرًا واحدًا فقط يُرجع True ، لأنه السطر الوحيد الذي تحتوي فيه السلاسل على نفس مواضع الحالة والمسافات البيضاء.

ومع ذلك، يمكننا استخدام الدالة str.strip() لإزالة المسافات من كل سلسلة والدالة str.lower() لتحويل كل سلسلة إلى أحرف صغيرة قبل إجراء المقارنة:

 #remove whitespace and convert each string to lowercase, then compare strings
df[' equal '] = df[' team1 ']. str . strip (). str . lower () == df[' team2 ']. str . strip (). str . lower ()

#view updated DataFrame
print (df)

     team1 team2 equal
0 Mavs Mavs True
1 Hawks Jazz False
2 Nets Nets True
3 Hornets Hornets True
4 Lakers LAKERS True

الآن يعود كل سطر إلى True باستثناء السطر الذي تكون فيه أسماء الفريق هي “Hawks” و”Jazz”، لأنه حتى بعد إزالة المسافات وتحويل السلاسل إلى أحرف صغيرة، فإن هذه السلاسل ليست متساوية.

مصادر إضافية

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

الباندا: كيفية إزالة أحرف معينة من السلاسل
الباندا: تحقق مما إذا كانت السلسلة تحتوي على سلاسل فرعية متعددة
الباندا: كيفية استبدال السلاسل الفارغة بـ NaN

Add a Comment

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