296 votes

pandas DataFrame : remplacer les valeurs nan par la moyenne des colonnes

J'ai un DataFrame pandas rempli principalement de nombres réels, mais il y a quelques nan dans ce domaine également.

Comment remplacer le nan avec les moyennes des colonnes où ils se trouvent ?

Cette question est très similaire à celle-ci : numpy array : remplacer les valeurs nan par la moyenne des colonnes mais, malheureusement, la solution donnée ne fonctionne pas pour un DataFrame pandas.

1voto

Punit Vara Points 1085

J'utilise cette méthode pour compléter les valeurs manquantes par la moyenne d'une colonne.

fill_mean = lambda col : col.fillna(col.mean())

df = df.apply(fill_mean, axis = 0)

0voto

Prateek Bhatt Points 57

Vous pouvez également utiliser value_counts pour obtenir les valeurs les plus fréquentes. Cela fonctionnerait avec différents types de données.

df = df.apply(lambda x:x.fillna(x.value_counts().index[0]))

Ici est la référence de l'api value_counts.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X