كيفية تحديد الصفوف التي لا تحتوي على قيم nan في pandas
يمكنك استخدام الطرق التالية لتحديد الصفوف التي لا تحتوي على قيم NaN في الباندا:
الطريقة الأولى: تحديد الصفوف التي لا تحتوي على قيم NaN في جميع الأعمدة
df[~df. isnull (). any (axis= 1 )]
الطريقة الثانية: تحديد الصفوف التي لا تحتوي على قيم NaN في عمود معين
df[~df[' this_column ']. isna ()]
توضح الأمثلة التالية كيفية استخدام كل طريقة عمليًا مع الباندا DataFrame التالية:
import pandas as pd import numpy as np #createDataFrame df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G'], ' points ': [np.nan, 12, 15, 25, np.nan, 22, 30], ' assists ': [4, np.nan, 5, 9, 12, 14, 10]}) #view DataFrame print (df) team points assists 0 A NaN 4.0 1 B 12.0 NaN 2C 15.0 5.0 3D 25.0 9.0 4 E NaN 12.0 5F 22.0 14.0 6G 30.0 10.0
مثال 1: حدد صفوفًا لا تحتوي على قيم NaN في جميع الأعمدة
يمكننا استخدام بناء الجملة التالي لتحديد الصفوف التي لا تحتوي على قيم NaN في كل عمود من DataFrame:
#create new DataFrame that only contains rows without NaNs no_nans = df[~df. isnull (). any (axis= 1 )] #view results print (no_nans) team points assists 2C 15.0 5.0 3D 25.0 9.0 5F 22.0 14.0 6G 30.0 10.0
لاحظ أن كل صف من DataFrame الناتج لا يحتوي على أي قيم NaN في أي عمود.
مثال 2: حدد صفوفًا لا تحتوي على قيم NaN في عمود معين
يمكننا استخدام بناء الجملة التالي لتحديد الصفوف التي لا تحتوي على قيم NaN في عمود النقاط في DataFrame:
#create new DataFrame that only contains rows without NaNs in points column no_points_nans = df[~df[' points ']. isna ()] #view results print (no_points_nans) team points assists 1 B 12.0 NaN 2C 15.0 5.0 3D 25.0 9.0 5F 22.0 14.0 6G 30.0 10.0
لاحظ أن كل صف من DataFrame الناتج لا يحتوي على قيم NaN في عمود النقاط .
يوجد صف بقيمة NaN في عمود المساعدة ، ولكن يتم الاحتفاظ بالصف في DataFrame نظرًا لأن القيمة الموجودة في عمود النقاط في هذا الصف ليست NaN.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في الباندا:
الباندا: كيفية حذف الصفوف ذات قيم NaN
الباندا: كيفية استبدال قيم NaN بسلسلة
الباندا: كيفية ملء قيم NaN بالمتوسط