La fonction Python Pandas DataFrame.dropna() sert à supprimer d’un DataFrame toutes les lignes ou colonnes qui con­tien­nent des valeurs man­quantes (NaN). Elle joue donc un rôle crucial, en par­ti­cu­lier dans la pré­pa­ra­tion et le nettoyage des données.

Syntaxe de Pandas dropna()

La fonction dropna() prend jusqu’à cinq pa­ra­mètres. La syntaxe de base est très simple :

DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False, ignore_index=False)
python

Pa­ra­mètres per­ti­nents

Le com­por­te­ment de la fonction Pandas DataFrame.dropna() peut être influencé par les pa­ra­mètres passés. Les pa­ra­mètres les plus im­por­tants sont résumés dans le tableau suivant :

Pa­ra­mètres Des­crip­tion Valeur par défaut
axis Détermine si les lignes (0 ou index) ou les colonnes (1 ou columns) sont sup­pri­mé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 con­si­dé­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

Ap­pli­ca­tion de Pandas DataFrame.dropna()

Pandas dropna() est né­ces­saire pour nettoyer les données avant une analyse, en sup­pri­mant les lignes ou les colonnes avec des valeurs man­quantes. Cela aide à éviter les biais dans les analyses sta­tis­tiques. Cette fonction facilite également la création de gra­phiques et de rapports, car les valeurs man­quantes peuvent dans certains cas entraîner des re­pré­sen­ta­tions erronées.

Sup­pres­sion des lignes avec des valeurs man­quantes

Dans l’exemple de code suivant, nous con­si­dé­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)
python

Le 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 ap­pli­quons la fonction Pandas dropna() :

## Suppression de toutes les lignes contenant au moins une valeur NaN
df_cleaned = df.dropna()
print(df_cleaned)
python

L’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 con­te­naient des valeurs NaN.

Sup­pres­sion des colonnes avec des valeurs man­quantes

La sup­pres­sion des colonnes avec des valeurs man­quantes fonc­tionne 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)
python

Dans 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

Ap­pli­ca­tion 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)
python

Aprè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

Uti­li­sa­tion de subset

Le paramètre subset est utilisé pour spécifier les colonnes spé­ci­fiques dans les­quelles les valeurs man­quantes doivent être re­cher­chées. Seules les lignes qui ont des valeurs man­quantes dans les colonnes spé­ci­fiées seront sup­pri­mées.

## Suppression de toutes les lignes contenant un NaN dans la colonne « A » :
df_subset = df.dropna(subset=['A'])
print(df_subset)
python

On 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 con­ser­vées, même si elles con­tien­nent 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
Aller au menu principal