Vous êtes chargé de nettoyer un bloc de données avec trois colonnes de chaînes, en vous assurant que la troisième colonne contient la valeur correcte pour la combinaison spécifiée des deux premières colonnes. L'extrait de code que vous avez fourni tente de regrouper le bloc de données selon les deux premières colonnes et de sélectionner la valeur la plus courante de la troisième colonne pour chaque combinaison. Cependant, vous rencontrez un problème lorsque vous essayez d'exécuter la fonction agg.
La syntaxe que vous avez utilisée dans votre code est obsolète. . Utilisez plutôt la fonction pd.Series.mode, disponible dans les versions Pandas 0.16 et supérieures. Cette fonction renvoie la valeur la plus courante dans une série de chaînes. Voici comment l'appliquer :
source.groupby(['Country','City'])['Short name'].agg(pd.Series.mode)
Cette syntaxe regroupe le bloc de données par « Pays » et « Ville », applique la fonction pd.Series.mode à la colonne « Nom court » de chaque groupe et affiche le résultats.
Si vous avez besoin de la sortie sous forme de DataFrame, utilisez ceci line:
source.groupby(['Country','City'])['Short name'].agg(pd.Series.mode).to_frame()
La fonction pd.Series.mode gère également efficacement les situations où plusieurs modes existent. Par exemple, si plusieurs valeurs apparaissent avec la même fréquence que la valeur la plus courante, elles seront renvoyées sous forme de liste de modes.
Vous pouvez utiliser la fonction stats.mode de la bibliothèque standard Python. Cependant, cette approche ne fonctionne pas bien lorsqu’il s’agit de plusieurs modes. Il génère une StatisticsError lorsqu'il n'y a pas une seule valeur la plus courante.
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!