Maison >développement back-end >Tutoriel Python >Comment puis-je appliquer plusieurs fonctions d'agrégation à la même colonne à l'aide de pandas GroupBy ?

Comment puis-je appliquer plusieurs fonctions d'agrégation à la même colonne à l'aide de pandas GroupBy ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-08 11:42:12486parcourir

How Can I Apply Multiple Aggregation Functions to the Same Column Using pandas GroupBy?

Agrégation avec plusieurs fonctions sur la même colonne à l'aide de GroupBy

Dans la bibliothèque pandas de Python, la fonction GroupBy.agg() fournit un moyen pratique pour appliquer des fonctions d’agrégation aux données groupées. Cependant, il convient de noter qu'appliquer plusieurs fonctions à la même colonne peut être délicat.

Au départ, il peut sembler intuitif d'utiliser la syntaxe suivante :

df.groupby("dummy").agg({"returns": f1, "returns": f2})

Cependant, cette approche échoue en raison pour dupliquer les clés interdites en Python. Au lieu de cela, pandas propose plusieurs méthodes pour effectuer de telles agrégations :

Méthode 1 : Liste des fonctions

Les fonctions peuvent être transmises sous forme de liste :

df.groupby("dummy").agg({"returns": [np.mean, np.sum]})

Méthode 2 : Dictionnaire des fonctions

Les fonctions peuvent être transmis sous forme de dictionnaire avec des clés représentant le nom de la colonne et des valeurs représentant une liste de fonctions :

df.groupby("dummy").agg({"returns": {"Mean": np.mean, "Sum": np.sum}})

Méthode 3 : mise à jour récente (au 20/06/2022)

Dans les versions récentes de pandas, la syntaxe suivante est préférée :

df.groupby('dummy').agg(
    Mean=('returns', np.mean),
    Sum=('returns', np.sum))

Cette syntaxe fonctionne non seulement de manière transparente, mais offre également une meilleure clarté et flexibilité dans la spécification des fonctions d'agrégation et des noms de colonnes.

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