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

Ajouter un commentaire

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