Introduction
Dans ce tutoriel, vous apprendrez comment utiliser la fonction dropna()
de la DataFrame de pandas.
Les valeurs NA
signifient « Non disponible ». Cela peut s’appliquer à Null
, None
, pandas.NaT
ou numpy.nan
. En utilisant dropna()
, vous pouvez éliminer les lignes et les colonnes contenant ces valeurs. Cela peut être bénéfique pour ne conserver que les données valides.
Par défaut, cette fonction renvoie une nouvelle DataFrame et la DataFrame source reste inchangée.
Ce tutoriel a été vérifié avec Python 3.10.9, pandas 1.5.2 et NumPy 1.24.1.
Syntaxe
La fonction dropna()
prend les paramètres suivants :
axis
:{0 (ou 'index'), 1 (ou 'colonnes')}, valeur par défaut 0
- Si
0
, supprime les lignes contenant des valeurs manquantes. - Si
1
, supprime les colonnes contenant des valeurs manquantes. how
:{'any', 'all'}, valeur par défaut 'any'
- Si
'any'
, supprime la ligne ou la colonne si l’une des valeurs estNA
. - Si
'all'
, supprime la ligne ou la colonne si toutes les valeurs sontNA
. thresh
: (optionnel) une valeurint
pour spécifier le seuil de l’opération de suppression.subset
: (optionnel) étiquette de colonne ou séquence d’étiquettes pour spécifier les lignes ou colonnes.inplace
: (optionnel) une valeurbool
.- Si
True
, le DataFrame source est modifié etNone
est renvoyé.
Construction de DataFrames d’exemple
Construire un DataFrame d’exemple contenant des valeurs valides et invalides:
Ce code affichera le 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
Ensuite, ajoutez un deuxième DataFrame avec des lignes et des colonnes supplémentaires contenant des valeurs NA
:
Cela produira un nouveau 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
Vous utiliserez les DataFrames précédents dans les exemples suivants.
Supprimer toutes les lignes avec des valeurs manquantes
Utilisez dropna()
pour supprimer les lignes avec des valeurs None
, NaN
ou NaT
:
Cela produira :
OutputName ID Population Regions
0 Shark 1 100 1
A new DataFrame with a single row that didn’t contain any NA
values.
Suppression de toutes les colonnes avec des valeurs manquantes
Utilisez dropna()
avec axis=1
pour supprimer les colonnes avec des valeurs None
, NaN
, ou NaT
:
Les colonnes avec des valeurs None
, NaN
, ou NaT
seront supprimées :
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.
Suppression des lignes ou des colonnes si toutes
les valeurs sont Null
avec how
Utilisez le deuxième DataFrame et how
:
Les lignes avec toutes
les valeurs égales à NA
seront supprimées :
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
La cinquième ligne a été supprimée.
Ensuite, utilisez how
et spécifiez l’axe
:
Les colonnes avec toutes
les valeurs égales à NA
seront supprimées :
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
La cinquième colonne a été supprimée.
Suppression de lignes ou de colonnes si un seuil est franchi avec thresh
Utilisez le deuxième DataFrame avec thresh
pour supprimer les lignes qui ne satisfont pas au seuil d’au moins 3
valeurs non-NA
:
Les lignes n’ayant pas au moins 3
valeurs non-NA
seront supprimées:
OutputName ID Population Regions Endangered
0 Shark 1 100 1 NaT
1 Whale 2 200 None NaT
Les troisième, quatrième et cinquième lignes ont été supprimées.
Suppression de lignes ou de colonnes pour des sous-ensembles
spécifiques
Utilisez le deuxième DataFrame avec subset
pour supprimer les lignes avec des valeurs NA
dans la colonne Population
:
Les lignes ayant des valeurs NA
dans la colonne Population
seront supprimées:
OutputName ID Population Regions Endangered
0 Shark 1 100 1 NaT
1 Whale 2 200 None NaT
Les troisième, quatrième et cinquième lignes ont été supprimées.
Vous pouvez également spécifier les valeurs d’index
dans le subset
lors de la suppression de colonnes du DataFrame:
Les colonnes contenant des valeurs NA
dans un sous-ensemble de lignes 1
et 2
:
OutputName ID
0 Shark 1
1 Whale 2
2 Jellyfish 3
3 Starfish 4
4 NaT NaT
Les troisième, quatrième et cinquième colonnes ont été supprimées.
Changer le DataFrame source après avoir supprimé des lignes ou des colonnes avec inplace
Par défaut, dropna()
ne modifie pas le DataFrame source. Cependant, dans certains cas, vous pouvez souhaiter économiser de la mémoire lors de la manipulation d’un grand DataFrame source en utilisant inplace
.
Ce code n’utilise pas de variable dfresult
.
Cela produira :
OutputName ID Population Regions
0 Shark 1 100 1
Le DataFrame d’origine a été modifié.
Conclusion
Dans cet article, vous avez utilisé la fonction dropna()
pour supprimer les lignes et les colonnes avec des valeurs NA
.
Poursuivez votre apprentissage avec plus de tutoriels Python et pandas – Tutoriel sur le module Python pandas, Supprimer les lignes dupliquées pandas.
Références
Source:
https://www.digitalocean.com/community/tutorials/pandas-dropna-drop-null-na-values-from-dataframe