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
Libérer: 2024-12-21 21:18:04
original
855 Les gens l'ont consulté

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()
Copier après la connexion

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')
Copier après la connexion

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']
})
Copier après la connexion

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()
Copier après la connexion

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 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