Maison >développement back-end >Tutoriel Python >Comment calculer le pourcentage de ventes par bureau dans chaque État à l'aide de Pandas ?

Comment calculer le pourcentage de ventes par bureau dans chaque État à l'aide de Pandas ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-06 09:48:11529parcourir

How to Calculate the Percentage of Sales per Office within Each State using Pandas?

Pourcentage du total avec Groupby dans Pandas

Le calcul du pourcentage de ventes contribué par chaque bureau au sein d'un État nécessite une approche nuancée dans Pandas. Bien que le simple regroupement par « state » et « office_id » vous donne la somme des ventes pour chaque bureau, il ne fournit pas le pourcentage de contribution au sein de l'état.

Pour y parvenir, vous devez d'abord créer un groupby objet basé sur « state » et « office_id ». Cela vous donnera un cadre de données avec la colonne des ventes contenant les ventes totales pour chaque combinaison bureau-état :

state_office = df.groupby(['state', 'office_id']).agg({'sales': 'sum'})

Pour calculer le pourcentage, vous pouvez diviser les ventes de chaque bureau par les ventes totales de cet état. Cependant, pour accéder aux ventes totales de chaque état au sein du groupby, vous devez créer un deuxième objet groupby basé sur 'state' :

state_total = df.groupby('state').agg({'sales': 'sum'})

En utilisant cet objet, vous pouvez améliorer le groupby 'state_office' avec une nouvelle colonne contenant le pourcentage de ventes pour chaque combinaison bureau-état :

state_pcts = state_office.groupby(level=0).apply(lambda x:
                                                 100 * x / float(state_total.loc[x.name]))

Notez que le paramètre 'level=0' dans 'groupby' fait référence au haut niveau de l'index multi-niveaux formé par le groupby d'origine sur 'state' et 'office_id'.

Cette approche garantit que le pourcentage de ventes de chaque bureau est calculé en faisant référence aux ventes totales dans l'état respectif.

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