Maison >développement back-end >Tutoriel Python >Comment trouver la valeur la plus courante dans un DataFrame Pandas après le regroupement ?

Comment trouver la valeur la plus courante dans un DataFrame Pandas après le regroupement ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-02 01:58:09122parcourir

How to Find the Most Common Value in a Pandas DataFrame After Grouping?

GroupBy pandas DataFrame et sélectionnez la valeur la plus courante

Pour nettoyer les données avec plusieurs colonnes de chaîne, regroupez par les deux premières colonnes et sélectionnez la valeur la plus courante pour la troisième colonne dans chaque combinaison.

Problème

Le code fourni échoue avec un KeyError et le regroupement uniquement par la colonne City entraînent une AssertionError. Une solution robuste est requise.

Solution

Post pandas v0.16, pd.Series.mode offre une méthode polyvalente et efficace pour cette tâche :

source.groupby(['Country', 'City'])['Short name'].agg(pd.Series.mode)

Adressage de plusieurs modes

Dans le cas de plusieurs modes au sein d'un groupe, Series.mode renvoie une liste de valeurs. Pour un seul résultat, appliquez une fonction lambda :

source.groupby(['Country', 'City'])['Short name'].agg(lambda x: pd.Series.mode(x)[0])

Alternatives à considérer

scipy.stats.mode peut également être utilisé, mais il génère une erreur lorsqu'il rencontre plusieurs modes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn