Maison >développement back-end >Tutoriel Python >Comment appliquer plusieurs fonctions à plusieurs colonnes Groupby dans Pandas ?

Comment appliquer plusieurs fonctions à plusieurs colonnes Groupby dans Pandas ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-30 05:28:09372parcourir

How to Apply Multiple Functions to Multiple Groupby Columns in Pandas?

Appliquer plusieurs fonctions à plusieurs colonnes Groupby

Présentation

L'application de plusieurs fonctions à plusieurs colonnes dans une opération groupby est une tâche courante dans l'analyse des données. Pandas propose plusieurs méthodes pour effectuer cette tâche, notamment en utilisant un dictionnaire de fonctions ou en appliquant des fonctions personnalisées qui renvoient plusieurs séries.

À l'aide d'un dictionnaire de fonctions

Pour un objet groupby série, vous pouvez appliquer plusieurs fonctions utilisant un dictionnaire avec les noms des colonnes de sortie comme clés :

group = pd.groupby("column")
group['column'].agg({'func1': np.mean, 'func2': np.std})

Cependant, cette méthode ne peut pas être utilisée sur un groupby DataFrame object.

Utilisation d'apply

La méthode apply vous permet d'appliquer une fonction personnalisée qui effectue plusieurs calculs sur les données du groupe. La fonction doit renvoyer une série avec les résultats, en utilisant l'index pour étiqueter les nouvelles colonnes.

def func(group_data):
    return pd.Series({
        'func1': group_data['column1'].mean(),
        'func2': group_data['column2'].std(),
    })

group.apply(func)

Utilisation d'une fonction d'agrégation personnalisée

Vous pouvez également définir une fonction d'agrégation personnalisée qui tire parti du DataFrame passé à la méthode apply :

def agg_func(group_data):
    return group_data.agg({'column1': np.mean, 'column2': np.std})

group.agg(agg_func)

Gestion des dépendances

Pour fonctions qui dépendent d’autres colonnes de l’objet groupby, vous pouvez utiliser la méthode ix pour accéder à ces colonnes. Cependant, notez que cette méthode est obsolète et doit être remplacée par loc:

def func(group_data):
    return group_data.mean().ix['column1']

Conclusion

L'exécution d'agrégations complexes sur des objets pandas groupby peut être réalisée en utilisant diverses méthodes en fonction de la complexité. et les dépendances des fonctions appliquées. En tirant parti de la méthode apply ou en créant des fonctions d'agrégation personnalisées, vous pouvez effectuer efficacement ces opérations et combiner les résultats dans un seul DataFrame.

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