Pandas : Comment utiliser dropna() avec thresh
Vous pouvez utiliser la fonction dropna() pour supprimer les lignes d’un DataFrame pandas qui contiennent des valeurs manquantes.
Vous pouvez également utiliser l’argument thresh pour spécifier le nombre minimum de valeurs non NaN qu’une ligne ou une colonne doit avoir pour être conservée dans le DataFrame.
Voici les manières les plus courantes d’utiliser l’argument seuil dans la pratique :
Méthode 1 : conserver uniquement les lignes avec un nombre minimum de valeurs non NaN
#only keep rows with at least 2 non-NaN values df.dropna(thresh=2)
Méthode 2 : conserver uniquement les lignes avec un pourcentage minimum de valeurs non NaN
#only keep rows with at least 70% non-NaN values df.dropna(thresh=0.7*len(df.columns))
Méthode 3 : conserver uniquement les colonnes avec un nombre minimum de valeurs non NaN
#only keep columns with at least 6 non-NaN values df.dropna(thresh=6, axis=1)
Méthode 4 : conserver uniquement les colonnes avec un pourcentage minimum de valeurs non NaN
#only keep columns with at least 70% non-NaN values df.dropna(thresh=0.7*len(df), axis=1)
Les exemples suivants montrent comment utiliser chaque méthode en pratique avec le DataFrame pandas suivant :
import pandas as pd import numpy as np #create DataFrame df = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], 'points': [18, np.nan, 19, 14, 14, 11, 20, np.nan], 'assists': [5, np.nan, np.nan, 9, np.nan, 9, 9, 4], 'rebounds': [11, np.nan, 10, 6, 6, 5, 9, np.nan]}) #view DataFrame print(df) team points assists rebounds 0 A 18.0 5.0 11.0 1 B NaN NaN NaN 2 C 19.0 NaN 10.0 3 D 14.0 9.0 6.0 4 E 14.0 NaN 6.0 5 F 11.0 9.0 5.0 6 G 20.0 9.0 9.0 7 H NaN 4.0 NaN
Exemple 1 : conserver uniquement les lignes avec un nombre minimum de valeurs non NaN
Nous pouvons utiliser la syntaxe suivante pour conserver uniquement les lignes du DataFrame qui ont au moins 2 valeurs non NaN :
#only keep rows with at least 2 non-NaN values df.dropna(thresh=2) team points assists rebounds 0 A 18.0 5.0 11.0 2 C 19.0 NaN 10.0 3 D 14.0 9.0 6.0 4 E 14.0 NaN 6.0 5 F 11.0 9.0 5.0 6 G 20.0 9.0 9.0 7 H NaN 4.0 NaN
Notez que la ligne en position d’index 1 a été supprimée car elle n’avait qu’une seule valeur non NaN dans toute la ligne.
Exemple 2 : conserver uniquement les lignes avec un pourcentage minimum de valeurs non NaN
Nous pouvons utiliser la syntaxe suivante pour conserver uniquement les lignes du DataFrame qui ont au moins 70 % de valeurs non NaN :
#only keep rows with at least 70% non-NaN values df.dropna(thresh=0.7*len(df.columns)) team points assists rebounds 0 A 18.0 5.0 11.0 2 C 19.0 NaN 10.0 3 D 14.0 9.0 6.0 4 E 14.0 NaN 6.0 5 F 11.0 9.0 5.0 6 G 20.0 9.0 9.0
Notez que les lignes aux positions d’index 1 et 7 ont été supprimées car ces lignes ne contenaient pas au moins 70 % des valeurs sous forme de valeurs non NaN.
Exemple 3 : conserver uniquement les colonnes avec un nombre minimum de valeurs non NaN
Nous pouvons utiliser la syntaxe suivante pour conserver uniquement les colonnes du DataFrame qui ont au moins 6 valeurs non NaN :
#only keep columns with at least 6 non-NaN values df.dropna(thresh=6, axis=1) team points rebounds 0 A 18.0 11.0 1 B NaN NaN 2 C 19.0 10.0 3 D 14.0 6.0 4 E 14.0 6.0 5 F 11.0 5.0 6 G 20.0 9.0 7 H NaN NaN
Notez que la colonne « assistances » a été supprimée car cette colonne ne contenait pas au moins 6 valeurs non NaN dans la colonne.
Exemple 4 : conserver uniquement les colonnes avec un pourcentage minimum de valeurs non NaN
Nous pouvons utiliser la syntaxe suivante pour conserver uniquement les colonnes du DataFrame qui ont au moins 70 % de valeurs non NaN :
#only keep columns with at least 70% non-NaN values df.dropna(thresh=0.7*len(df), axis=1) team points rebounds 0 A 18.0 11.0 1 B NaN NaN 2 C 19.0 10.0 3 D 14.0 6.0 4 E 14.0 6.0 5 F 11.0 5.0 6 G 20.0 9.0 7 H NaN NaN
Notez que la colonne « assistance » a été supprimée car cette colonne ne contenait pas au moins 70 % de valeurs non NaN.
Remarque : Vous pouvez trouver la documentation complète de la fonction pandas dropna() ici .
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans les pandas :
Pandas : Comment réinitialiser l’index après avoir utilisé dropna()
Pandas : comment utiliser dropna() avec des colonnes spécifiques
Pandas : Comment supprimer des lignes en fonction de plusieurs conditions