Agrégations multiples sur la même colonne à l'aide de Pandas GroupBy.agg()
Lorsque vous travaillez avec Pandas, il est souvent nécessaire d'effectuer plusieurs agrégations sur la même colonne. Bien qu'intuitive, l'approche simple consistant à spécifier la même colonne plusieurs fois dans la méthode agg() n'est pas syntaxiquement correcte. Cela soulève la question de savoir comment appliquer de manière efficace et concise différentes fonctions d'agrégation à une seule colonne à l'aide de GroupBy.agg().
Solution
À partir du 2022-06- 20, la pratique recommandée pour les agrégations multiples consiste à utiliser une syntaxe de dictionnaire :
df.groupby('dummy').agg({ 'returns': {'Mean': np.mean, 'Sum': np.sum} })
Dans ce Par exemple, la colonne « retours » est agrégée avec les fonctions de moyenne et de somme. Le DataFrame résultant contiendra deux nouvelles colonnes, « Mean » et « Sum », qui montrent les agrégations respectives.
Note historique
Avant l'adoption du dictionnaire syntaxe, il existait deux méthodes alternatives pour les agrégations multiples :
df.groupby('dummy').agg({'returns': [np.mean, np.sum]})
Cette approche transmet les fonctions sous forme de liste directement à agg(). Le DataFrame contiendra deux nouvelles colonnes avec les résultats des agrégations de moyenne et de somme, respectivement.
df.groupby('dummy').agg({'returns': {'f1': np.mean, 'f2': np.sum}})
Semblable à l'approche par liste, les fonctions sont transmises sous forme de dictionnaire dans un dictionnaire. Les clés du dictionnaire interne spécifient les noms des fonctions, tandis que les valeurs sont les fonctions d'agrégation. Le DataFrame aura une colonne pour chaque nom de fonction spécifié.
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!