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