Pandas : Comment supprimer des colonnes avec des valeurs NaN
Vous pouvez utiliser les méthodes suivantes pour supprimer des colonnes d’un DataFrame pandas avec des valeurs NaN :
Méthode 1 : supprimer les colonnes avec n’importe quelle valeur NaN
df = df.dropna(axis=1)
Méthode 2 : supprimer les colonnes avec toutes les valeurs NaN
df = df.dropna(axis=1, how='all')
Méthode 3 : supprimer les colonnes avec un nombre minimum de valeurs NaN
df = df.dropna(axis=1, thresh=2)
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', 'A', 'A', 'B', 'B', 'B'], 'position': [np.nan, 'G', 'F', 'F', 'C', 'G'], 'points': [11, 28, 10, 26, 6, 25], 'rebounds': [np.nan, np.nan, np.nan, np.nan, np.nan, np.nan]}) #view DataFrame print(df) team position points rebounds 0 A NaN 11 NaN 1 A G 28 NaN 2 A F 10 NaN 3 B F 26 NaN 4 B C 6 NaN 5 B G 25 NaN
Exemple 1 : supprimer des colonnes avec des valeurs NaN
Le code suivant montre comment supprimer des colonnes avec des valeurs NaN :
#drop columns with any NaN values df = df.dropna(axis=1) #view updated DataFrame print(df) team points 0 A 11 1 A 28 2 A 10 3 B 26 4 B 6 5 B 25
Notez que les colonnes position et rebonds ont été supprimées car elles avaient toutes deux au moins une valeur NaN.
Exemple 2 : supprimer les colonnes avec toutes les valeurs NaN
Le code suivant montre comment supprimer des colonnes avec toutes les valeurs NaN :
#drop columns with all NaN values df = df.dropna(axis=1, how='all') #view updated DataFrame print(df) team position points 0 A NaN 11 1 A G 28 2 A F 10 3 B F 26 4 B C 6 5 B G 25
Notez que la colonne des rebonds a été supprimée car c’était la seule colonne avec toutes les valeurs NaN.
Exemple 3 : supprimer des colonnes avec un nombre minimum de valeurs NaN
Le code suivant montre comment supprimer des colonnes avec au moins deux valeurs NaN :
#drop columns with at least two NaN values df = df.dropna(axis=1, thresh=2) #view updated DataFrame print(df) team position points 0 A NaN 11 1 A G 28 2 A F 10 3 B F 26 4 B C 6 5 B G 25
Notez que la colonne des rebonds a été supprimée car c’était la seule colonne avec au moins deux valeurs NaN.
Remarque : Vous pouvez trouver la documentation complète de la fonction dropna() dans pandas ici .
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans les pandas :
Comment supprimer la première colonne dans Pandas
Comment supprimer les colonnes en double dans Pandas
Comment supprimer toutes les colonnes sauf certaines dans Pandas