Comment utiliser Pandas fillna() pour remplacer les valeurs NaN
Vous pouvez utiliser la fonction fillna() pour remplacer les valeurs NaN dans un DataFrame pandas.
Cette fonction utilise la syntaxe de base suivante :
#replace NaN values in one column df['col1'] = df['col1'].fillna(0) #replace NaN values in multiple columns df[['col1', 'col2']] = df[['col1', 'col2']].fillna(0) #replace NaN values in all columns df = df.fillna(0)
Ce tutoriel explique comment utiliser cette fonction avec le DataFrame pandas suivant :
import numpy as np import pandas as pd #create DataFrame with some NaN values df = pd.DataFrame({'rating': [np.nan, 85, np.nan, 88, 94, 90, 76, 75, 87, 86], 'points': [25, np.nan, 14, 16, 27, 20, 12, 15, 14, 19], 'assists': [5, 7, 7, np.nan, 5, 7, 6, 9, 9, 5], 'rebounds': [11, 8, 10, 6, 6, 9, 6, 10, 10, 7]}) #view DataFrame df rating points assists rebounds 0 NaN 25.0 5.0 11 1 85.0 NaN 7.0 8 2 NaN 14.0 7.0 10 3 88.0 16.0 NaN 6 4 94.0 27.0 5.0 6 5 90.0 20.0 7.0 9 6 76.0 12.0 6.0 6 7 75.0 15.0 9.0 10 8 87.0 14.0 9.0 10 9 86.0 19.0 5.0 7
Exemple 1 : remplacer les valeurs NaN dans une colonne
Le code suivant montre comment remplacer les valeurs NaN par des zéros dans la colonne « note » :
#replace NaNs with zeros in 'rating' column df['rating'] = df['rating'].fillna(0) #view DataFrame df rating points assists rebounds 0 0.0 25.0 5.0 11 1 85.0 NaN 7.0 8 2 0.0 14.0 7.0 10 3 88.0 16.0 NaN 6 4 94.0 27.0 5.0 6 5 90.0 20.0 7.0 9 6 76.0 12.0 6.0 6 7 75.0 15.0 9.0 10 8 87.0 14.0 9.0 10 9 86.0 19.0 5.0 7
Exemple 2 : remplacer les valeurs NaN dans plusieurs colonnes
Le code suivant montre comment remplacer les valeurs NaN par des zéros dans les colonnes « note » et « points » :
#replace NaNs with zeros in 'rating' and 'points' columns df[['rating', 'points']] = df[['rating', 'points']].fillna(0) #view DataFrame df rating points assists rebounds 0 0.0 25.0 5.0 11 1 85.0 0.0 7.0 8 2 0.0 14.0 7.0 10 3 88.0 16.0 NaN 6 4 94.0 27.0 5.0 6 5 90.0 20.0 7.0 9 6 76.0 12.0 6.0 6 7 75.0 15.0 9.0 10 8 87.0 14.0 9.0 10 9 86.0 19.0 5.0 7
Exemple 3 : remplacer les valeurs NaN dans toutes les colonnes
Le code suivant montre comment remplacer les valeurs NaN dans chaque colonne par des zéros :
#replace NaNs with zeros in all columns df = df.fillna(0) #view DataFrame df rating points assists rebounds 0 0.0 25.0 5.0 11 1 85.0 0.0 7.0 8 2 0.0 14.0 7.0 10 3 88.0 16.0 0.0 6 4 94.0 27.0 5.0 6 5 90.0 20.0 7.0 9 6 76.0 12.0 6.0 6 7 75.0 15.0 9.0 10 8 87.0 14.0 9.0 10 9 86.0 19.0 5.0 7
Vous pouvez trouver la documentation complète en ligne de la fonction fillna() ici .
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :
Comment compter les valeurs manquantes chez les pandas
Comment supprimer des lignes avec des valeurs NaN dans Pandas
Comment supprimer des lignes contenant une valeur spécifique dans Pandas