Pandas Groupby Moyenne

Pandas Groupby Moyenne



Lorsque nous additionnons deux valeurs ou plus et que leur somme est divisée par le nombre total de valeurs additionnées, le résultat est une moyenne. Pandas Mean renvoie la moyenne des données ou des valeurs le long d'un axe donné. Une série avec la moyenne sur un axe sera renvoyée par pandas si la méthode mean() est appliquée à une trame de données. Les pandas renvoient une valeur numérique (nombre unique) si 'mean()' est utilisé sur une série. Les fonctions peuvent être appliquées aux catégories après avoir créé les groupes de catégories. C'est une idée simple mais une technique très efficace qui est fréquemment appliquée en science des données. Il nous permet de créer un résumé des données pour chaque groupe, d'appliquer des modifications spécifiques au groupe et d'effectuer un filtrage des données. Avec la fonction groupby(), l'objet peut être divisé, une fonction peut être appliquée, et les produits peuvent ensuite être combinés. De grands ensembles de données peuvent être regroupés avec cela, et des opérations peuvent être effectuées sur les groupes.

Comment utiliser la méthode groupby.mean() dans Pandas ?

Pour calculer la moyenne d'une trame de données ou la moyenne de colonnes spécifiques d'une trame de données, nous pouvons utiliser la fonction groupby.mean(). Nous allons montrer comment l'utiliser dans les exemples suivants.







Exemple # 01 : Déterminer la moyenne d'une seule colonne entière en regroupant les données d'une seule colonne

À l'aide de la fonction pd.DataFrame(), nous allons d'abord créer une trame de données afin de pouvoir diviser les données de la colonne ou des colonnes de la trame de données en groupes, puis trouver leur valeur moyenne. Avant de créer la trame de données, nous devons importer le module pandas avec la bibliothèque numpy.





Comme on peut le voir, nous avons créé notre dataframe en utilisant le dictionnaire pandas. Nous avons 3 colonnes dans notre base de données df, c'est-à-dire 'articles', 'fabricant' et 'quantité'. Dans la colonne 'articles', nous avons stocké les valeurs ('chemise', 'cravate', 'pantalon', 'chemise', 'cravate', 'pantalon', 'chemise', 'pantalon', 'pantalon', ' tie'), tandis que les colonnes 'fabricant' et 'quantité' contenant les valeurs ('italie', 'france', 'chine', 'france',  'chine', 'italie', 'chine', 'italie', 'france', 'chine') et (13, 16, 21, 32, 26, 41, 24, 42, 12, 15) respectivement. Regroupons les valeurs dans la colonne fabricant et déterminons la valeur de quantité moyenne pour chaque fabricant distinct.





La valeur fabricant « Chine » a une valeur de quantité moyenne de 21,5, la valeur de quantité moyenne pour « France » est de 20,0 et la valeur de quantité moyenne pour « Italie » est de 32,0. Nous pouvons également spécifier un index à la sortie en utilisant la fonction reset_index avec la fonction groupby.mean().



Exemple # 02 : Trouver la moyenne d'une seule colonne flottante en regroupant les données d'une seule colonne

Nous avons vu comment trouver la moyenne de la colonne d'entiers après avoir regroupé les données. Essayons maintenant une autre colonne de type de données comme float. Une trame de données avec au moins une colonne avec des valeurs flottantes sera créée à l'aide de la fonction pd.DataFrame().

En mettant un dictionnaire à l'intérieur du pd.DataFrame(), nous avons créé un dataframe avec trois colonnes. La colonne 'nom' stocke les noms de certains joueurs aléatoires ('Sam', 'Jay', 'Leo', 'Mike', 'Will', 'Billy', 'Jhonny', 'Lara', 'Hanna', 'Tony'), la colonne 'équipe' représentant l'équipe à laquelle appartient chaque joueur ('A', 'A', 'B',  'A', 'B', 'A', 'C', 'B ', 'C', 'C'), et la colonne 'hauteur' stocke les hauteurs de chaque joueur sous forme de valeur flottante (5.6, 5.4, 6.3, 5.2, 5.5, 6.4, 5.6, 5.8, 6.0, 5.2). Regroupons les données dans la colonne 'équipe' et déterminons la valeur de taille moyenne pour chaque valeur 'équipe' distincte.

Vous pouvez voir que la taille moyenne des joueurs de l'équipe A est de 5,65, alors que les tailles moyennes des joueurs des équipes B et C sont respectivement de 5,866 et 5,6.

Exemple # 03 : Déterminer la moyenne de plusieurs colonnes à l'aide de la fonction groupby.mean()

Dans les exemples précédents, nous avons déterminé la moyenne d'une seule colonne. Cependant, la moyenne de nombreuses colonnes pour chaque groupe peut également être déterminée. Créons une trame de données ayant plus d'une colonne numérique, après avoir importé les pandas et les modules numpy.

Dans le dataframe nouvellement créé, il y a trois colonnes avec les étiquettes 'name', 'score' et 'matches'. Les noms de colonne contenant les valeurs de données sous forme de chaîne ('Ron', 'Jim', 'Dany', 'Jim', 'Jim', 'Dany', 'Ron', 'Ron', 'Dany', 'Jim' ), tandis que le « score » et les « correspondances » consistent en des données numériques telles que (3, 4, 2, 4, 1, 5, 2, 3, 1, 2) et (2, 3, 1, 2, 1, 3 , 4, 1, 2, 1). Trouvons maintenant la moyenne de la colonne 'score' et 'matchs' après avoir regroupé les données de la colonne 'name'. La fonction groupby.mean() sera utilisée pour cela.

On peut remarquer que le groupe ‘Dany’ a un score moyen de 2,66 en 2,00 matchs. Le groupe Jim a un score moyen de 2,75 et la valeur moyenne des matchs joués est de 1,75. Alors que le groupe « Ron » a une valeur de score moyenne de 2,66 et la valeur moyenne des matchs joués est de 2,33.

La moyenne d'un groupe de catégories par l'objet peut également être calculée à l'aide de la méthode agg(). Nous fournirons la moyenne comme argument à la fonction agg(). Pour agréger en utilisant une ou plusieurs opérations sur l'axe donné, nous pouvons utiliser la fonction agg().

La sortie est la même qu'avant.

Exemple # 04 : Déterminer la moyenne de colonnes spécifiques en regroupant plusieurs colonnes

Dans les exemples 1, 2 et 3, nous avons regroupé les valeurs ou les données d'une seule colonne. Nous allons maintenant regrouper plusieurs colonnes en utilisant la liste des étiquettes de colonne dans la fonction groupby(), puis nous trouverons la valeur moyenne pour chaque groupe. Un dictionnaire 'd' sera passé à l'intérieur de la fonction pd.Dataframe() comme entrée pour créer le dataframe.

Nous avons créé le dataframe requis. La colonne 'sports' stocke le nom de certains sports ('Badminton', 'football', 'tennis', 'basketball', 'football', 'tennis', 'basketball', 'football', 'Badminton', ' basketball', 'basketball', 'tennis'), les noms des pays (« Chine », « Russie », « Italie », « Espagne », « Russie », « Italie », « Chine », « Italie », « Espagne', 'Chine', 'Russie', 'Italie') sont stockés dans la colonne 'pays'. Tandis que dans la colonne « victoire », nous avons stocké le nombre de matchs remportés par chaque pays dans chaque sport (13, 10, 6, 7, 10, 12, 7, 11, 8, 13, 11, 6). Utilisons la fonction groupby.mean() pour trouver la moyenne des valeurs de la colonne 'win' en regroupant les colonnes 'sports' et 'country'.

La fonction a réussi à déterminer les moyennes des valeurs de la colonne « victoire » pour chaque sport dans le pays. La trame de données groupée par peut être réinitialisée à l'aide de la fonction reset_index(), qui génère également un nouvel index, lui donnant une structure de trame de données appropriée.

Un index est ajouté pour la ligne de chaque dataframe. Pour organiser les résultats dans un tableau attrayant, nous pouvons également utiliser la fonction pivot().

Conclusion

Dans ce didacticiel, nous avons expliqué ce qu'est la moyenne ou la moyenne des nombres et comment trouver la moyenne d'une colonne spécifique (une ou plusieurs) après avoir regroupé la ou les colonnes d'un dataframe. Nous avons implémenté quelques exemples dans cet article pour vous apprendre à déterminer la moyenne d'un seul entier ou d'une colonne flottante en regroupant les données d'une seule colonne ; comment déterminer la moyenne de plusieurs colonnes à l'aide de la fonction groupby.mean() ; et aussi comment déterminer la moyenne de colonnes spécifiques en regroupant les multiples colonnes.