Application de plusieurs agrégations à la même colonne dans Pandas
Dans Pandas, GroupBy.agg() fournit un moyen pratique d'exécuter plusieurs fonctions sur données groupées. Cependant, appliquer différentes fonctions à la même colonne à l'aide de agg() peut sembler difficile.
Traditionnellement, l'approche syntaxiquement incorrecte mais souhaitée serait de transmettre des clés en double à l'argument du dictionnaire de agg(), ce qui n'est pas le cas. autorisé en Python.
Pour résoudre ce problème, pandas propose plusieurs options :
Option 1 : Liste des Tuples
Depuis le 20/06/2022, la méthode préférée consiste à fournir une liste de tuples [(colonne, fonction)] à agg(), où chaque tuple représente une agrégation à effectuer sur la colonne spécifiée.
df.groupby('dummy').agg( Mean=('returns', np.mean), Sum=('returns', np.sum))
Option 2 : Imbriquée Dictionnaire
Une autre approche consiste à utiliser un dictionnaire imbriqué, où la clé externe est la colonne et les valeurs internes sont les fonctions à appliquer.
df.groupby('dummy').agg({'returns': {'Mean': np.mean, 'Sum': np.sum}})
Option 3 : Liste des fonctions
Pour les versions historiques de pandas, une option alternative consiste à transmettre les fonctions sous forme de liste dans l'argument du dictionnaire de agg().
df.groupby('dummy').agg({'returns': [np.mean, np.sum]})
En utilisant ces options, vous pouvez facilement effectuer plusieurs agrégations sur la même colonne sans avoir besoin de fonctions auxiliaires ou d'appeler explicitement agg() plusieurs fois.
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!