Maison > développement back-end > Tutoriel Python > Comment puis-je récupérer des statistiques par groupe (nombre, moyenne, médiane, min, max) à l'aide de Pandas GroupBy ?

Comment puis-je récupérer des statistiques par groupe (nombre, moyenne, médiane, min, max) à l'aide de Pandas GroupBy ?

Patricia Arquette
Libérer: 2024-12-21 15:03:14
original
822 Les gens l'ont consulté

How Can I Retrieve Group-Wise Statistics (Count, Mean, Median, Min, Max) Using Pandas GroupBy?

Récupérer des statistiques par groupe à l'aide de Pandas GroupBy

Problème

Étant donné un DataFrame df avec plusieurs colonnes (col1, col2, etc.), vous souhaitez calculer des statistiques de groupe, telles que le nombre, la moyenne, médiane, minimum et maximum, pour chaque combinaison unique de valeurs dans ces colonnes.

Approche

Pandas fournit une fonction groupby complète qui permet une analyse de données par groupe. Il vous permet d'agréger et de transformer des données en fonction de clés de regroupement spécifiques.

Count

Pour obtenir le nombre de lignes dans chaque groupe, utilisez la méthode .size() . Il renvoie une série contenant le nombre de lignes pour chaque groupe unique. Par exemple :

df.groupby(['col1', 'col2']).size()
Copier après la connexion

Pour convertir cette série en DataFrame, vous pouvez utiliser .reset_index(name='counts'):

df.groupby(['col1', 'col2']).size().reset_index(name='counts')
Copier après la connexion

Statistiques multiples

Pour calculer plusieurs statistiques pour chaque groupe, utilisez la méthode .agg(). Vous pouvez spécifier les statistiques que vous souhaitez calculer sous forme de dictionnaire avec les noms de colonnes comme clés et les fonctions d'agrégation comme valeurs. Par exemple, pour calculer la moyenne, la médiane et le minimum pour les colonnes col3 et col4 :

df.groupby(['col1', 'col2']).agg({
    'col3': ['mean', 'count'],
    'col4': ['median', 'min', 'count']
})
Copier après la connexion

Combiner les statistiques

Pour combiner différentes agrégations en un seul DataFrame, vous peut utiliser la méthode join. Cela vous permet de fusionner plusieurs DataFrames basés sur des colonnes communes. Par exemple, pour créer un résultat combinant le nombre, la moyenne, la médiane et le minimum :

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

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