הקדמה
במדריך זה, תלמד כיצד להשתמש בפונקציית DataFrame dropna()
של pandas.
ערכים NA
הם "לא זמינים". זה יכול להתייחס ל־Null
, None
, pandas.NaT
, או numpy.nan
. בשימוש ב־dropna()
תימחק שורות ועמודות עם ערכים אלה. זה עשוי להיות מועיל כדי לספק לך רק נתונים תקינים בלבד.
בדרך כלל, פונקציה זו מחזירה DataFrame חדש והDataFrame המקורי נשאר ללא שינוי.
המדריך הזה אומת עם Python 3.10.9, pandas 1.5.2, ו־NumPy 1.24.1.
תחביר
dropna()
מקבלת את הפרמטרים הבאים:
axis
:{0 (או 'index'), 1 (או 'columns')}
, ברירת מחדל 0- אם
0
, להוריד שורות עם ערכים חסרים. - אם
1
, להוריד עמודות עם ערכים חסרים. how
:{'any', 'all'}, ברירת מחדל 'any'
- אם
'any'
, להוריד את השורה או העמודה אם לפחות אחד מהערכים הואNA
. - אם
'all'
, להוריד את השורה או העמודה אם כל הערכים הםNA
. thresh
: (אופציונלי) ערך שלint
כדי לציין את הסף לפעולת ההורדה.subset
: (אופציונלי) תווית עמודה או רצף של תוויות כדי לציין שורות או עמודות.inplace
: (אופציונלי) ערך שלbool
.- אם
True
, ה-DataFrame מקורי משתנה ומוחזרNone
.
בניית DataFrame דוגמה
בנה DataFrame דוגמה שמכיל ערכים חוקיים ולא חוקיים:
קוד זה ידפיס את ה-DataFrame:
OutputName ID Population Regions
0 Shark 1 100 1
1 Whale 2 200 None
2 Jellyfish 3 NaN NaT
3 Starfish 4 NaT NaT
אז הוסף DataFrame שני עם שורות ועמודות נוספות עם ערכים של NA
:
זה ידפיס DataFrame חדש:
OutputName ID Population Regions Endangered
0 Shark 1 100 1 NaT
1 Whale 2 200 None NaT
2 Jellyfish 3 NaN NaT NaT
3 Starfish 4 NaT NaT NaT
4 NaT NaT NaT NaT NaT
תשתמש ב-DataFrames הקודמים בדוגמאות שיבואו.
מחיקת כל השורות עם ערכים חסרים
השתמש ב־dropna()
כדי להסיר שורות עם ערכי None
, NaN
או NaT
:
זה ידפיס:
OutputName ID Population Regions
0 Shark 1 100 1
A new DataFrame with a single row that didn’t contain any NA
values.
שחרור כל העמודות עם ערכים חסרים
השתמש ב־dropna()
עם axis=1
כדי להסיר עמודות עם ערכים של None
, NaN
או NaT
:
העמודות עם ערכים של None
, NaN
או NaT
יוסרו:
OutputName ID
0 Shark 1
1 Whale 2
2 Jellyfish 3
3 Starfish 4
A new DataFrame with a single column that contained non-NA
values.
שחרור שורות או עמודות אם כל
הערכים הם Null
עם how
השתמש בקובץ הנתונים השני ו־how
:
השורות עם ערכים שכולם שווים ל־NA
יוסרו:
OutputName ID Population Regions Endangered
0 Shark 1 100 1 NaT
1 Whale 2 200 None NaT
2 Jellyfish 3 NaN NaT NaT
3 Starfish 4 NaT NaT NaT
השורה החמישית נמחקה.
לבסוף, השתמש ב־how
וציין את ה־axis
:
העמודות שערכיהן שכולם שווים ל־NA
יוסרו:
OutputName ID Population Regions
0 Shark 1 100 1
1 Whale 2 200 None
2 Jellyfish 3 NaN NaT
3 Starfish 4 NaT NaT
4 NaT NaT NaT NaT
העמודה החמישית נמחקה.
שים או עמודות אם חסם חוצה עם thresh
השתמש במסגרת השנייה עם thresh
כדי לשים שורות שלא עומדות בסף של לפחות 3
ערכים לא-NA
:
השורות שאין להן לפחות 3
ערכים לא-NA
יישום:
OutputName ID Population Regions Endangered
0 Shark 1 100 1 NaT
1 Whale 2 200 None NaT
השורות השלישית, הרביעית והחמישית נשלפו.
שים או עמודות עבור subsets
מסוימים
השתמש במסגרת השנייה עם subset
כדי לשים שורות עם ערכים NA
בעמודת Population
:
השורות שיש להם ערכים NA
בעמודת Population
יישום:
OutputName ID Population Regions Endangered
0 Shark 1 100 1 NaT
1 Whale 2 200 None NaT
השורות השלישית, הרביעית והחמישית נשלפו.
אפשר גם לציין את ערכי ה-index
ב-subset
כאשר משים עמודות מהמסגרת:
העמודות שמכילות ערכים NA
בתת השורות 1
ו-2
:
OutputName ID
0 Shark 1
1 Whale 2
2 Jellyfish 3
3 Starfish 4
4 NaT NaT
העמודות השלישית, הרביעית והחמישית נשלפו.
שינוי DataFrame המקורי לאחר הסרת שורות או עמודות עם inplace
ברירת המחדל, dropna()
לא משנה את DataFrame המקורי. אך במקרים מסוימים, ייתכן שתרצה לשמור זיכרון בעת העבודה עם DataFrame מקורי גדול על ידי שימוש ב־inplace
.
קוד זה אינו משתמש במשתנה dfresult
.
זה יפליט:
OutputName ID Population Regions
0 Shark 1 100 1
DataFrame המקורי שונה.
מסקנה
במאמר זה, השתמשת בפונקצית dropna()
כדי להסיר שורות ועמודות עם ערכים של NA
.
המשך ללמוד עם מדריכים נוספים ב־Python ו־pandas – מדריך למודול pandas של Python, הסרת שורות כפולות ב־pandas.
מקורות
Source:
https://www.digitalocean.com/community/tutorials/pandas-dropna-drop-null-na-values-from-dataframe