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.

Hébergement Web
Hébergement Web flexible, performant et sûr
  • 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)
python

Paramè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)
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 appliquons 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 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)
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

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)
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

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)
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 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
Cet article vous a-t-il été utile ?
Aller au menu principal