Comment remplacer les valeurs NaN par zéro dans Pandas
Vous pouvez utiliser les méthodes suivantes pour remplacer les valeurs NaN par des zéros dans un DataFrame pandas :
Méthode 1 : remplacer les valeurs NaN par zéro dans une colonne
df['col1'] = df['col1'].fillna(0)
Méthode 2 : remplacer les valeurs NaN par zéro dans plusieurs colonnes
df[['col1', 'col2']] = df[['col1', 'col2']].fillna(0)
Méthode 3 : remplacer les valeurs NaN par zéro dans toutes les colonnes
df = df.fillna(0)
Les exemples suivants montrent comment utiliser chacune de ces méthodes avec le DataFrame pandas suivant :
import pandas as pd
import numpy as np
#create DataFrame
df = pd.DataFrame({'points': [25, np.nan, 15, 14, 19, 23, 25, 29],
'assists': [5, np.nan, 7, np.nan, 12, 9, 9, 4],
'rebounds': [11, 8, 10, 6, 6, np.nan, 9, np.nan]})
#view DataFrame
print(df)
points assists rebounds
0 25.0 5.0 11.0
1 NaN NaN 8.0
2 15.0 7.0 10.0
3 14.0 NaN 6.0
4 19.0 12.0 6.0
5 23.0 9.0 NaN
6 25.0 9.0 9.0
7 29.0 4.0 NaN
Méthode 1 : remplacer les valeurs NaN par zéro dans une colonne
Le code suivant montre comment remplacer les valeurs NaN par zéro uniquement dans la colonne « assistances » :
#replace NaN values with zero in 'assists' column
df['assists'] = df['assists'].fillna(0)
#view updated DataFrame
print(df)
points assists rebounds
0 25.0 5.0 11.0
1 NaN 0.0 8.0
2 15.0 7.0 10.0
3 14.0 0.0 6.0
4 19.0 12.0 6.0
5 23.0 9.0 NaN
6 25.0 9.0 9.0
7 29.0 4.0 NaN
Notez que les valeurs NaN dans la colonne « assistances » ont été remplacées par des zéros, mais les valeurs NaN dans une colonne sur deux restent toujours.
Méthode 2 : remplacer les valeurs NaN par zéro dans plusieurs colonnes
Le code suivant montre comment remplacer les valeurs NaN par zéro dans les colonnes « points » et « passes décisives » :
#replace NaN values with zero in 'points' and 'assists' column
df[['points', 'assists']] = df[['points', 'assists']].fillna(0)
#view updated DataFrame
print(df)
points assists rebounds
0 25.0 5.0 11.0
1 0.0 0.0 8.0
2 15.0 7.0 10.0
3 14.0 0.0 6.0
4 19.0 12.0 6.0
5 23.0 9.0 NaN
6 25.0 9.0 9.0
7 29.0 4.0 NaN
Méthode 3 : remplacer les valeurs NaN par zéro dans toutes les colonnes
Le code suivant montre comment remplacer les valeurs NaN par zéro dans chaque colonne du DataFrame :
#replace NaN values with zero in all columns
df = df.fillna(0)
#view updated DataFrame
print(df)
points assists rebounds
0 25.0 5.0 11.0
1 0.0 0.0 8.0
2 15.0 7.0 10.0
3 14.0 0.0 6.0
4 19.0 12.0 6.0
5 23.0 9.0 0.0
6 25.0 9.0 9.0
7 29.0 4.0 0.0
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :
Comment remplacer des valeurs spécifiques dans Pandas
Comment filtrer un DataFrame Pandas par valeurs de colonne
Comment remplir les valeurs NA pour plusieurs colonnes dans Pandas