Pandas : comment utiliser dropna() avec des colonnes spécifiques
Vous pouvez utiliser la fonction dropna() avec l’argument subset pour supprimer les lignes d’un DataFrame pandas qui contiennent des valeurs manquantes dans des colonnes spécifiques.
Voici les manières les plus courantes d’utiliser cette fonction en pratique :
Méthode 1 : supprimer les lignes avec des valeurs manquantes dans une colonne spécifique
df.dropna(subset = ['column1'], inplace=True)
Méthode 2 : supprimer les lignes avec des valeurs manquantes dans l’une des plusieurs colonnes spécifiques
df.dropna(subset = ['column1', 'column2', 'column3'], inplace=True)
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, 28], 'assists': [5, np.nan, np.nan, 9, 12, 9, 9, 4], 'rebounds': [11, 8, 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 8.0 2 C 19.0 NaN 10.0 3 D 14.0 9.0 6.0 4 E 14.0 12.0 6.0 5 F 11.0 9.0 5.0 6 G 20.0 9.0 9.0 7 H 28.0 4.0 NaN
Exemple 1 : supprimer les lignes avec des valeurs manquantes dans une colonne spécifique
Nous pouvons utiliser la syntaxe suivante pour supprimer les lignes avec des valeurs manquantes dans la colonne « assistances » :
#drop rows with missing values in 'assists' column df.dropna(subset = ['assists'], inplace=True) #view updated DataFrame print(df) team points assists rebounds 0 A 18.0 5.0 11.0 3 D 14.0 9.0 6.0 4 E 14.0 12.0 6.0 5 F 11.0 9.0 5.0 6 G 20.0 9.0 9.0 7 H 28.0 4.0 NaN
Notez que les deux lignes avec des valeurs manquantes dans la colonne « assistances » ont toutes deux été supprimées du DataFrame.
Notez également que la dernière ligne du DataFrame est conservée même si elle comporte une valeur manquante car la valeur manquante ne se trouve pas dans la colonne « assistances ».
Exemple 2 : supprimer les lignes avec des valeurs manquantes dans l’une des plusieurs colonnes spécifiques
Nous pouvons utiliser la syntaxe suivante pour supprimer les lignes avec des valeurs manquantes dans les colonnes « points » ou « rebonds » :
#drop rows with missing values in 'points' or 'rebounds' column df.dropna(subset = ['points', 'rebounds'], inplace=True) #view updated DataFrame print(df) 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 12.0 6.0 5 F 11.0 9.0 5.0 6 G 20.0 9.0 9.0
Notez que les deux lignes avec des valeurs manquantes dans les colonnes « points » ou « rebonds » ont été supprimées du DataFrame.
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 supprimer des colonnes avec des valeurs NaN
Pandas : Comment supprimer des lignes en fonction de plusieurs conditions