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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *