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()
Pour convertir cette série en DataFrame, vous pouvez utiliser .reset_index(name='counts'):
df.groupby(['col1', 'col2']).size().reset_index(name='counts')
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'] })
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()
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!