Maison > développement back-end > Tutoriel Python > Comment puis-je effectuer plusieurs agrégations sur la même colonne à l'aide de Pandas GroupBy.agg() ?

Comment puis-je effectuer plusieurs agrégations sur la même colonne à l'aide de Pandas GroupBy.agg() ?

Patricia Arquette
Libérer: 2024-12-06 17:50:15
original
1017 Les gens l'ont consulté

How Can I Perform Multiple Aggregations on the Same Column Using Pandas GroupBy.agg()?

Agrégations multiples sur la même colonne avec Pandas GroupBy.agg()

Dans Pandas, GroupBy.agg() permet une agrégation pratique de données en appliquant une fonction à chaque colonne. Cependant, il devient nécessaire d'appeler agg() plusieurs fois lors de l'application de différentes fonctions à la même colonne.

Approche traditionnelle (incorrecte) :

L'approche intuitivement simple serait be:

df.groupby("dummy").agg({
    "returns": f1, 
    "returns": f2
})
Copier après la connexion

Malheureusement, cela entraîne une erreur due à un doublon clés.

Solution :

Puisque agg() attend un dictionnaire, la solution simple consiste à créer un dictionnaire avec le nom de la colonne et une liste de fonctions :

df.groupby("dummy").agg({
    "returns": [f1, f2]
})
Copier après la connexion

Cela se traduira par un DataFrame multi-index avec la sortie des deux agrégations.

Exemple :

Considérez le DataFrame suivant :

import pandas as pd
import datetime as dt
import numpy as np

pd.np.random.seed(0)
df = pd.DataFrame({
    "date": [dt.date(2012, x, 1) for x in range(1, 11)],
    "returns": 0.05 * np.random.randn(10),
    "dummy": np.repeat(1, 10)
})
Copier après la connexion

Pour appliquer à la fois la moyenne et la somme à la colonne « retours » :

df.groupby("dummy").agg({
    "returns": ["mean", "sum"]
})
Copier après la connexion

Cela produira :

           returns          
           mean       sum
dummy                    
1      0.036901  0.369012
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal