كيفية استخدام "ليست فارغة"؟ في الباندا (مع أمثلة)
يمكنك استخدام الدالة pandas notnull() لاختبار ما إذا كانت عناصر pandas DataFrame فارغة أم لا.
إذا كان العنصر يساوي NaN أو لا شيء، فستُرجع الدالة False .
وإلا فإن الدالة سترجع True .
فيما يلي عدة طرق شائعة لاستخدام هذه الوظيفة عمليًا:
الطريقة الأولى: تصفية الصفوف التي لا تحتوي على قيم فارغة في أي عمود
df[df. notnull (). all ( 1 )]
الطريقة الثانية: تصفية الصفوف التي لا تحتوي على قيم فارغة في عمود معين
df[df[[' this_column ']]. notnull (). all ( 1 )]
الطريقة الثالثة: حساب عدد القيم غير الصفرية في كل عمود
df. notnull (). sum ()
الطريقة الرابعة: حساب عدد القيم غير الصفرية في DataFrame بأكمله
df. notnull (). sum (). sum ()
توضح الأمثلة التالية كيفية استخدام كل طريقة عمليًا مع الباندا DataFrame التالية:
import pandas as pd import numpy as np #createDataFrame df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], ' points ': [18, 22, 19, 14, 14, 11, 20, np.nan], ' assists ': [5, np.nan, 7, 9, 12, 9, 9, np.nan], ' rebounds ': [11, 8, 10, 6, 6, 5, np.nan, 12]}) #view DataFrame print (df) team points assists rebounds 0 A 18.0 5.0 11.0 1 B 22.0 NaN 8.0 2 C 19.0 7.0 10.0 3D 14.0 9.0 6.0 4 E 14.0 12.0 6.0 5 F 11.0 9.0 5.0 6G 20.0 9.0 NaN 7 H NaN NaN 12.0
مثال 1: تصفية الصفوف التي لا تحتوي على قيم فارغة في أي عمود
يوضح التعليمة البرمجية التالية كيفية تصفية DataFrame لعرض الصفوف التي لا تحتوي على قيم فارغة في أي عمود فقط:
#filter for rows with no null values in any column
df[df. notnull (). all ( 1 )]
team points assists rebounds
0 A 18.0 5.0 11.0
2 C 19.0 7.0 10.0
3D 14.0 9.0 6.0
4 E 14.0 12.0 6.0
5 F 11.0 9.0 5.0
لاحظ أن كل صف من الصفوف في DataFrame الذي تمت تصفيته لا يحتوي على قيم فارغة في أي عمود.
المثال 2: تصفية الصفوف التي لا تحتوي على قيم فارغة في عمود محدد
يوضح التعليمة البرمجية التالية كيفية تصفية DataFrame لعرض الصفوف التي لا تحتوي على قيم فارغة في العمود المساعد فقط:
#filter for rows with no null values in the 'assists' column
df[df[[' assists ']]. notnull (). all ( 1 )]
team points assists rebounds
0 A 18.0 5.0 11.0
2 C 19.0 7.0 10.0
3D 14.0 9.0 6.0
4 E 14.0 12.0 6.0
5 F 11.0 9.0 5.0
6G 20.0 9.0 NaN
لاحظ أن كل صف من الصفوف في DataFrame الذي تمت تصفيته لا يحتوي على قيم فارغة في عمود المساعد .
مثال 3: حساب عدد القيم غير الصفرية في كل عمود
يوضح الكود التالي كيفية حساب عدد القيم غير الصفرية في كل عمود من DataFrame:
#count number of non-null values in each column
df. notnull (). sum ()
team 8
points 7
assists 6
rebounds 7
dtype: int64
ومن النتيجة يمكننا أن نرى:
- يحتوي عمود الفريق على 8 قيم غير صفرية.
- يحتوي عمود النقاط على 7 قيم غير الصفر.
- يحتوي عمود المساعدة على 6 قيم غير صفرية.
- يحتوي عمود الارتدادات على 7 قيم غير صفرية.
مثال 4: حساب عدد القيم غير الصفرية في DataFrame بأكمله
يوضح الكود التالي كيفية حساب عدد القيم غير الصفرية في DataFrame بالكامل:
#count number of non-null values in entire DataFrame
df. notnull (). sum (). sum ()
28
من الإخراج يمكننا أن نرى أن هناك 28 قيمة غير الصفر في DataFrame بأكمله.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية إجراء عمليات التصفية الشائعة الأخرى في الباندا:
كيفية تصفية Pandas DataFrame حسب قيم الأعمدة
كيفية تصفية “لا يحتوي” في الباندا
كيفية تصفية Pandas DataFrame بشروط متعددة