الباندا: كيفية استخدام dropna() مع thresh


يمكنك استخدام الدالة dropna() لإزالة الصفوف من Pandas DataFrame التي تحتوي على قيم مفقودة.

يمكنك أيضًا استخدام وسيطة thresh لتحديد الحد الأدنى لعدد القيم غير NaN التي يجب الاحتفاظ بها في صف أو عمود في DataFrame.

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

الطريقة الأولى: الاحتفاظ فقط بالصفوف التي تحتوي على الحد الأدنى لعدد القيم غير NaN

 #only keep rows with at least 2 non-NaN values
df. dropna (thresh= 2 )

الطريقة الثانية: الاحتفاظ فقط بالصفوف التي تحتوي على الحد الأدنى من القيم غير NaN

 #only keep rows with at least 70% non-NaN values
df. dropna (thresh= 0.7 * len (df. columns ))

الطريقة الثالثة: احتفظ فقط بالأعمدة التي تحتوي على الحد الأدنى من القيم غير NaN

 #only keep columns with at least 6 non-NaN values
df. dropna (thresh= 6 ,axis= 1 )

الطريقة الرابعة: احتفظ فقط بالأعمدة التي تحتوي على الحد الأدنى من القيم غير NaN

 #only keep columns with at least 70% non-NaN values
df. dropna (thresh= 0.7 * len (df), axis= 1 )

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

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                   ' points ': [18, np.nan, 19, 14, 14, 11, 20, np.nan],
                   ' assists ': [5, np.nan, np.nan, 9, np.nan, 9, 9, 4],
                   ' rebounds ': [11, np.nan, 10, 6, 6, 5, 9, np.nan]})

#view DataFrame
print (df)

  team points assists rebounds
0 A 18.0 5.0 11.0
1 B NaN NaN NaN
2 C 19.0 NaN 10.0
3D 14.0 9.0 6.0
4 E 14.0 NaN 6.0
5 F 11.0 9.0 5.0
6G 20.0 9.0 9.0
7H NaN 4.0 NaN

مثال 1: احتفظ فقط بالصفوف التي تحتوي على الحد الأدنى لعدد القيم غير NaN

يمكننا استخدام بناء الجملة التالي للاحتفاظ فقط بالصفوف في DataFrame التي تحتوي على قيمتين غير NaN على الأقل:

 #only keep rows with at least 2 non-NaN values
df. dropna (thresh= 2 )

	team points assists rebounds
0 A 18.0 5.0 11.0
2 C 19.0 NaN 10.0
3D 14.0 9.0 6.0
4 E 14.0 NaN 6.0
5 F 11.0 9.0 5.0
6G 20.0 9.0 9.0
7H NaN 4.0 NaN

لاحظ أنه تمت إزالة الصف الموجود في موضع الفهرس 1 لأنه يحتوي على قيمة واحدة فقط غير NaN في الصف بأكمله.

المثال 2: احتفظ فقط بالصفوف التي تحتوي على الحد الأدنى من القيم التي لا تحتوي على NaN

يمكننا استخدام بناء الجملة التالي للاحتفاظ فقط بتلك الصفوف في DataFrame التي تحتوي على 70٪ على الأقل من قيم غير NaN:

 #only keep rows with at least 70% non-NaN values
df. dropna (thresh= 0.7 * len (df. columns ))

        team points assists rebounds
0 A 18.0 5.0 11.0
2 C 19.0 NaN 10.0
3D 14.0 9.0 6.0
4 E 14.0 NaN 6.0
5 F 11.0 9.0 5.0
6G 20.0 9.0 9.0

لاحظ أنه تمت إزالة الصفوف الموجودة في موضعي الفهرس 1 و 7 لأن هذه الصفوف لم تحتوي على 70% على الأقل من القيم كقيم غير NaN.

مثال 3: احتفظ فقط بالأعمدة التي تحتوي على الحد الأدنى من القيم غير NaN

يمكننا استخدام بناء الجملة التالي للاحتفاظ فقط بتلك الأعمدة في DataFrame التي تحتوي على 6 قيم غير NaN على الأقل:

 #only keep columns with at least 6 non-NaN values
df. dropna (thresh= 6 ,axis= 1 )

        team points rebounds
0 A 18.0 11.0
1 B NaN NaN
2 C 19.0 10.0
3D 14.0 6.0
4E 14.0 6.0
5 F 11.0 5.0
6G 20.0 9.0
7 H NaN NaN

لاحظ أنه تمت إزالة عمود “المساعدات” لأن هذا العمود لا يحتوي على 6 قيم غير NaN على الأقل في العمود.

مثال 4: احتفظ فقط بالأعمدة التي تحتوي على الحد الأدنى من القيم التي لا تحتوي على NaN

يمكننا استخدام الصيغة التالية للاحتفاظ فقط بتلك الأعمدة في DataFrame التي تحتوي على 70% على الأقل من قيم غير NaN:

 #only keep columns with at least 70% non-NaN values
df. dropna (thresh= 0.7 * len (df), axis= 1 )

        team points rebounds
0 A 18.0 11.0
1 B NaN NaN
2 C 19.0 10.0
3D 14.0 6.0
4E 14.0 6.0
5 F 11.0 5.0
6G 20.0 9.0
7 H NaN NaN

لاحظ أنه تمت إزالة عمود “الدعم” لأن هذا العمود لا يحتوي على 70% على الأقل من القيم غير NaN.

ملاحظة : يمكنك العثور على الوثائق الكاملة لوظيفة pandas dropna() هنا .

مصادر إضافية

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

الباندا: كيفية إعادة ضبط الفهرس بعد استخدام dropna()
الباندا: كيفية استخدام dropna() مع أعمدة محددة
الباندا: كيفية حذف الصفوف بناءً على شروط متعددة

Add a Comment

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