Maison >développement back-end >Tutoriel Python >Comment Pandas GroupBy peut-il être utilisé pour calculer des statistiques par groupe en Python ?

Comment Pandas GroupBy peut-il être utilisé pour calculer des statistiques par groupe en Python ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-21 21:18:04836parcourir

How Can Pandas GroupBy Be Used to Calculate Group-Wise Statistics in Python?

Calculer des statistiques par groupe avec Pandas GroupBy

Introduction

Lorsque vous travaillez avec des données, il est souvent souhaitable d'analyser et de comparer les statistiques de différents groupes. Pandas, une importante bibliothèque Python pour la manipulation de données, offre la fonctionnalité GroupBy pour effectuer ces opérations sans effort.

Obtenir le nombre de lignes par groupe

Le moyen le plus simple d'obtenir le nombre de lignes pour chaque groupe consiste à utiliser Méthode .size(). Cette méthode renvoie une série contenant des décomptes par groupe :

df.groupby(['col1','col2']).size()

Pour récupérer les décomptes au format tabulaire (c'est-à-dire sous forme de DataFrame avec une colonne "counts") :

df.groupby(['col1', 'col2']).size().reset_index(name='counts')

Calcul de plusieurs statistiques par groupe

Pour calculer plusieurs statistiques, utilisez la méthode .agg() avec un dictionnaire. Les clés spécifient les colonnes à calculer, tandis que les valeurs sont des listes des agrégations souhaitées (par exemple, « moyenne », « médiane » et « nombre ») :

df.groupby(['col1', 'col2']).agg({
    'col3': ['mean', 'count'],
    'col4': ['median', 'min', 'count']
})

Personnalisation de la sortie des données

Pour plus de contrôle sur la sortie, des agrégations individuelles peuvent être jointes :

counts = df.groupby(['col1', 'col2']).size().to_frame(name='counts')
counts.join(gb.agg({'col3': 'mean'}).rename(columns={'col3': 'col3_mean'})) \
    .join(gb.agg({'col4': 'median'}).rename(columns={'col4': 'col4_median'})) \
    .join(gb.agg({'col4': 'min'}).rename(columns={'col4': 'col4_min'})) \
    .reset_index()

Cela produit un résultat plus structuré DataFrame avec des étiquettes de colonnes non imbriquées.

Notes de bas de page

Dans l'exemple fourni, les valeurs nulles peuvent entraîner des écarts dans le nombre de lignes utilisées pour différents calculs. Cela souligne l'importance de prendre en compte les valeurs nulles lors de l'interprétation des statistiques par groupe.

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