الباندا: كيفية تصفية العناصر "لا تحتوي على"؟


يمكنك استخدام الطرق التالية لإجراء عامل تصفية “لا يحتوي على” في DataFrame الباندا:

الطريقة الأولى: تصفية الصفوف التي لا تحتوي على سلسلة معينة

 filtered_df = df[df[' my_column ']. str . contains (' some_string ') == False ]

الطريقة الثانية: تصفية الصفوف التي لا تحتوي على إحدى السلاسل المحددة المتعددة

 filtered_df = df[df[' my_column ']. str . contains (' string1|string2|string3 ') == False ]

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['Nets', 'Rockets', 'Mavs', 'Spurs', 'Kings', 'Nuggets'],
                   ' points ': [18, 22, 19, 14, 14, 11],
                   ' assists ': [5, 7, 7, 9, 12, 9],
                   ' rebounds ': [11, 8, 10, 6, 6, 5]})

#view DataFrame
print (df)

      team points assists rebounds
0 Nets 18 5 11
1 Rockets 22 7 8
2 Mavs 19 7 10
3 Spurs 14 9 6
4 Kings 14 12 6
5 Nuggets 11 9 5

المثال 1: تصفية الصفوف التي لا تحتوي على سلسلة محددة

يوضح التعليمة البرمجية التالية كيفية تصفية DataFrame الباندا للصفوف التي لا يحتوي عمود الفريق الخاص بها على “ets” في الاسم:

 #filter for rows that do not contain 'ets' in the 'team' column
filtered_df = df[df[' team ']. str . contains (' ets ') == False ]

#view filtered DataFrame
print (filtered_df)

    team points assists rebounds
2 Mavs 19 7 10
3 Spurs 14 9 6
4 Kings 14 12 6

لاحظ أن DataFrame الناتج لا يحتوي على أية صفوف تحتوي قيمتها في عمود الفريق على “ets” في الاسم.

على وجه الخصوص، تم استبعاد الفرق التالية من DataFrame:

  • شبكات
  • الصواريخ
  • شذرات

لاحظ أن كل اسم من أسماء الفرق هذه يحتوي على “ets” في الاسم.

المثال 2: تصفية الصفوف التي لا تحتوي على واحدة من عدة سلاسل محددة

يوضح التعليمة البرمجية التالية كيفية تصفية DataFrame الباندا للصفوف التي لا يحتوي عمود الفريق الخاص بها على “ets” في الاسم:

 #filter for rows that do not contain 'ets' or 'urs' in the 'team' column
filtered_df = df[df[' team ']. str . contains (' ets|urs ') == False ]

#view filtered DataFrame
print (filtered_df)

    team points assists rebounds
2 Mavs 19 7 10
4 Kings 14 12 6

لاحظ أن DataFrame الناتج لا يحتوي على أي صفوف تحتوي قيمتها في عمود الفريق على “ets” أو “urs” في الاسم.

ملاحظة : | المشغل يعني “OR” في الباندا.

مصادر إضافية

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

كيفية تصفية Pandas DataFrame حسب قيم الأعمدة
كيفية تصفية صفوف Pandas DataFrame حسب التاريخ
كيفية تصفية Pandas DataFrame بشروط متعددة

Add a Comment

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