Pourcentage du total avec Groupby dans Pandas
Cet article se concentre sur une tâche courante dans l'analyse des données : calculer le pourcentage d'un total pour chaque groupe au sein d’un DataFrame. Voici la question et une solution utilisant Pandas.
Question :
J'ai un fichier CSV avec les colonnes État, ID bureau et Ventes. Je souhaite calculer le pourcentage de ventes par bureau dans un état donné, où le total de tous les pourcentages dans chaque état est de 100%.
Solution :
Pour atteindre ceci, nous devons créer un deuxième niveau groupby.
Tout d'abord, nous pouvons créer un objet groupby basé sur 'state' et 'office_id' colonnes :
import pandas as pd state_office = df.groupby(['state', 'office_id']).agg({'sales': 'sum'})
Ensuite, nous créons un nouveau DataFrame en divisant chaque valeur de vente par sa somme correspondante par état :
state_pcts = state_office.groupby(level=0).apply(lambda x: 100 * x / float(x.sum()))
Cette approche permet de suivre la somme des ventes par état tout en garantissant que le pourcentage de chaque groupe au sein d'un État totalise 100 %.
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!