Pandas : Comment remplir les valeurs NaN avec le mode



Vous pouvez utiliser la syntaxe suivante pour remplacer les valeurs NaN dans une colonne d’un DataFrame pandas par la valeur de mode de la colonne :

df['col1'] = df['col1'].fillna(df['col1'].mode()[0])

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : remplacer les valeurs manquantes par Mode dans Pandas

Supposons que nous ayons le DataFrame pandas suivant avec quelques valeurs manquantes :

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, 75, 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, 7],
                   '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	75.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	7.0	7

Nous pouvons utiliser la fonction fillna() pour remplir les valeurs NaN dans la colonne rating avec la valeur mode de la colonne rating :

#fill NaNs with column mode in 'rating' column
df['rating'] = df['rating'].fillna(df['rating'].mode()[0])

#view updated DataFrame 
df

	rating	points	assists	rebounds
0	75.0	25.0	5.0	11
1	85.0	NaN	7.0	8
2	75.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	75.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	7.0	7

La valeur de mode dans la colonne de notation était de 75 , donc chacune des valeurs NaN de la colonne de notation était remplie avec cette valeur.

Remarque : 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 *