Pandas : comment remplacer les valeurs NaN par une chaîne
Vous pouvez utiliser les méthodes suivantes pour remplacer les valeurs NaN par des chaînes dans un DataFrame pandas :
Méthode 1 : remplacer les valeurs NaN par une chaîne dans l’ensemble du DataFrame
df.fillna('', inplace=True)
Méthode 2 : remplacer les valeurs NaN par une chaîne dans des colonnes spécifiques
df[['col1', 'col2']] = df[['col1','col2']].fillna('')
Méthode 3 : remplacer les valeurs NaN par une chaîne dans une colonne
df.col1 = df.col1.fillna('')
Les exemples suivants montrent comment utiliser chaque méthode avec le DataFrame pandas suivant :
import pandas as pd import numpy as np #create DataFrame with some NaN values df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], 'points': [np.nan, 11, 7, 7, 8, 6, 14, 15], 'assists': [5, np.nan, 7, 9, 12, 9, 9, 4], 'rebounds': [11, 8, 10, np.nan, 6, 5, 9, np.nan]}) #view DataFrame df team points assists rebounds 0 A NaN 5.0 11.0 1 A 11.0 NaN 8.0 2 A 7.0 7.0 10.0 3 A 7.0 9.0 NaN 4 B 8.0 12.0 6.0 5 B 6.0 9.0 5.0 6 B 14.0 9.0 9.0 7 B 15.0 4.0 NaN
Méthode 1 : remplacer les valeurs NaN par une chaîne dans l’ensemble du DataFrame
Le code suivant montre comment remplacer chaque valeur NaN d’un DataFrame entier par une chaîne vide :
#replace NaN values in all columns with empty string
df.fillna('', inplace=True)
#view updated DataFrame
df
team points assists rebounds
0 A 5.0 11.0
1 A 11.0 8.0
2 A 7.0 7.0 10.0
3 A 7.0 9.0
4 B 8.0 12.0 6.0
5 B 6.0 9.0 5.0
6 B 14.0 9.0 9.0
7 B 15.0 4.0
Notez que chaque valeur NaN dans chaque colonne a été remplacée par une chaîne vide.
Méthode 2 : remplacer les valeurs NaN par une chaîne dans des colonnes spécifiques
Le code suivant montre comment remplacer les valeurs NaN dans des colonnes spécifiques par une chaîne spécifique :
#replace NaN values in 'points' and 'rebounds' columns with 'none'
df[['points', 'rebounds']] = df[['points', 'rebounds']].fillna('none')
#view updated DataFrame
df
team points assists rebounds
0 A none 5.0 11.0
1 A 11.0 NaN 8.0
2 A 7.0 7.0 10.0
3 A 7.0 9.0 none
4 B 8.0 12.0 6.0
5 B 6.0 9.0 5.0
6 B 14.0 9.0 9.0
7 B 15.0 4.0 none
Notez que les valeurs NaN dans les colonnes « points » et « rebonds » ont été remplacées par la chaîne « aucun », mais les valeurs NaN dans la colonne « passes décisives » sont restées inchangées.
Méthode 3 : remplacer les valeurs NaN par une chaîne dans une colonne
Le code suivant montre comment remplacer les valeurs NaN dans une colonne par une chaîne spécifique :
#replace NaN values in 'points' column with 'zero'
df.points = df.points.fillna('zero')
#view updated DataFrame
df
team points assists rebounds
0 A zero 5.0 11.0
1 A 11.0 NaN 8.0
2 A 7.0 7.0 10.0
3 A 7.0 9.0 NaN
4 B 8.0 12.0 6.0
5 B 6.0 9.0 5.0
6 B 14.0 9.0 9.0
7 B 15.0 4.0 NaN
Notez que la valeur NaN dans la colonne « points » a été remplacée par la chaîne « zéro », mais les valeurs NaN dans les colonnes « passes décisives » et « rebonds » sont restées inchangées.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :
Pandas : comment remplacer les valeurs dans une colonne en fonction de la condition
Pandas : comment remplacer les valeurs NaN par zéro
Pandas : Comment compter les valeurs manquantes dans DataFrame