المقدمة
في هذا البرنامج التعليمي، ستتعلم كيفية استخدام وظيفة 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
، يتم تغيير إطار البيانات المصدر ويتم إرجاعNone
.
بناء إطارات بيانات عينية
بناء إطار بيانات عيني يحتوي على قيم صالحة وغير صالحة:
سيقوم هذا الكود بطباعة إطار البيانات:
OutputName ID Population Regions
0 Shark 1 100 1
1 Whale 2 200 None
2 Jellyfish 3 NaN NaT
3 Starfish 4 NaT NaT
ثم قم بإضافة إطار بيانات ثاني يحتوي على صفوف وأعمدة إضافية بقيم 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
4 NaT NaT NaT NaT NaT
ستستخدم الإطارات السابقة في الأمثلة التالية.
إسقاط جميع الصفوف ذات القيم المفقودة
استخدم 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
لإسقاط الصفوف التي لا تفي بعتبة الحد الأدنى من القيم غير NA
وهي على الأقل 3
قيمة:
سيتم إسقاط الصفوف التي لا تحتوي على 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
تم إسقاط الأعمدة الثالثة والرابعة والخامسة.
تغيير إطار البيانات المصدر بعد إسقاط الصفوف أو الأعمدة باستخدام inplace
بشكل افتراضي، dropna()
لا يعدل إطار البيانات المصدر. ومع ذلك، في بعض الحالات، قد ترغب في توفير الذاكرة عند العمل مع إطار بيانات مصدر كبير باستخدام inplace
.
هذا الكود لا يستخدم متغير dfresult
.
سينتج هذا:
OutputName ID Population Regions
0 Shark 1 100 1
تم تعديل الإطار البيانات المصدري.
الاستنتاج
في هذه المقالة، استخدمت وظيفة dropna()
لإزالة الصفوف والأعمدة التي تحتوي على قيم NA
.
واصل تعلمك مع المزيد من دروس Python وpandas – دليل وحدة Python pandas، إسقاط الصفوف المكررة في pandas.
المراجع
Source:
https://www.digitalocean.com/community/tutorials/pandas-dropna-drop-null-na-values-from-dataframe