Nettoyer des données avec Pandas dropna()
La fonction Python Pandas DataFrame.dropna()
sert à supprimer d’un DataFrame toutes les lignes ou colonnes qui contiennent des valeurs manquantes (NaN). Elle joue donc un rôle crucial, en particulier dans la préparation et le nettoyage des données.
- Certificat SSL et protection DDoS
- Sauvegarde et restauration des données
- Assistance 24/7 et conseiller personnel
Syntaxe de Pandas dropna()
La fonction dropna()
prend jusqu’à cinq paramètres. La syntaxe de base est très simple :
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False, ignore_index=False)
pythonParamètres pertinents
Le comportement de la fonction Pandas DataFrame.dropna()
peut être influencé par les paramètres passés. Les paramètres les plus importants sont résumés dans le tableau suivant :
Paramètres | Description | Valeur par défaut |
---|---|---|
axis
|
Détermine si les lignes (0 ou index ) ou les colonnes (1 ou columns ) sont supprimées
|
0 |
how
|
Indique si toutes les valeurs (all ) ou seulement certaines (any ) doivent être NaN
|
any
|
thresh
|
Indique le nombre minimum de valeurs non-NaN qu’une ligne ou une colonne doit avoir pour ne pas être supprimée | None
|
subset
|
Détermine quelles lignes ou colonnes doivent être considérées ; si None , toutes les colonnes sont prises en compte
|
None
|
inplace
|
Détermine si l’opération est effectuée dans le DataFrame d’origine | False
|
ignore_index
|
Si True , les axes restants seront étiquetés de 0 à n-1
|
False
|
Application de Pandas DataFrame.dropna()
Pandas dropna()
est nécessaire pour nettoyer les données avant une analyse, en supprimant les lignes ou les colonnes avec des valeurs manquantes. Cela aide à éviter les biais dans les analyses statistiques. Cette fonction facilite également la création de graphiques et de rapports, car les valeurs manquantes peuvent dans certains cas entraîner des représentations erronées.
Suppression des lignes avec des valeurs manquantes
Dans l’exemple de code suivant, nous considérons un DataFrame qui contient des valeurs NaN :
import pandas as pd
import numpy as np
# Création d'un DataFrame avec des données d'exemple
données = {
'A': [1, 2, np.nan, 4],
'B': [5, np.nan, np.nan, 8],
'C': [9, 10, 11, 12]
}
df = pd.DataFrame(données)
print(df)
pythonLe DataFrame se présente comme suit :
A B C
0 1.0 5.0 9
1 2.0 NaN 10
2 NaN NaN 11
3 4.0 8.0 12
Dans l’étape suivante, nous appliquons la fonction Pandas dropna()
:
## Suppression de toutes les lignes contenant au moins une valeur NaN
df_cleaned = df.dropna()
print(df_cleaned)
pythonL’exécution du code donne le résultat suivant :
A B C
0 1.0 5.0 9
3 4.0 8.0 12
Seules les lignes d’index 0 et 3 du DataFrame sont encore présentes, car toutes les autres lignes contenaient des valeurs NaN.
Suppression des colonnes avec des valeurs manquantes
La suppression des colonnes avec des valeurs manquantes fonctionne de la même manière. Pour cela, il suffit de définir le paramètre axis
de la fonction à 1 :
## Suppression de toutes les colonnes contenant au moins une valeur NaN
df_cleaned_columns = df.dropna(axis=1)
print(df_cleaned_columns)
pythonDans le résultat, on voit qu’il ne reste que la colonne « C », car elle est la seule à ne pas contenir de valeur NaN :
C
0 9
1 10
2 11
3 12
Application de thresh
Si vous ne voulez supprimer que les lignes qui ont moins de deux valeurs non-NaN, vous pouvez utiliser le paramètre thresh
:
## Suppression de toutes les lignes contenant moins de deux valeurs non-NaN
df_thresh = df.dropna(thresh=2)
print(df_thresh)
pythonAprès l’exécution du code, la première ligne est désormais présente, car elle contient deux valeurs non-NaN :
A B C
0 1.0 5.0 9
1 2.0 NaN 10
3 4.0 8.0 12
Utilisation de subset
Le paramètre subset
est utilisé pour spécifier les colonnes spécifiques dans lesquelles les valeurs manquantes doivent être recherchées. Seules les lignes qui ont des valeurs manquantes dans les colonnes spécifiées seront supprimées.
## Suppression de toutes les lignes contenant un NaN dans la colonne « A » :
df_subset = df.dropna(subset=['A'])
print(df_subset)
pythonOn remarque que seule la ligne d’index 2 a été supprimée, car elle contenait une valeur NaN dans la colonne « A ». Les autres lignes sont conservées, même si elles contiennent des NaN dans d’autres colonnes.
A B C
0 1.0 5.0 9
1 2.0 NaN 10
3 4.0 8.0 12