Aller au contenu
Enregistrer la vidéo (4,5 Mo)
Ouvrir le cours

Leçons ·

Regrouper et agréger

Répondre à la question par catégorie avec groupby, agg, pivot_table et merge, avec les ventes d'Awa.

Transcription

Awa se pose une question très simple : combien vend-elle en moyenne, dans chaque ville ? Elle pourrait filtrer une ville, calculer, recommencer pour la suivante. Avec des dizaines de villes, ce serait très long. Exactement, et c'est pourquoi pandas propose groupby.

Imaginez qu'elle pose un panier par ville, puis qu'elle y range chaque ticket. C'est ce que fait groupby de ville : il découpe le tableau en groupes. Les crochets disent ensuite quelle colonne regarder, ici le montant. Attention, à ce moment-là, rien n'est encore calculé : les tickets sont seulement rangés.

La méthode mean calcule ensuite la moyenne de chaque panier. Enfin, pandas réunit ces résultats dans une seule réponse, avec une ligne par ville. Prenons Douala : 2300 plus 4100 plus 800 font 7200, et 7200 divisé par 3 donne 2400.

Douala arrive en tête avec 2400 francs par vente en moyenne. Retenez ces trois temps, car ils sont toujours les mêmes : découper, calculer, combiner. Et si Awa voulait le total plutôt que la moyenne, il lui suffirait de remplacer mean par sum.

Et si elle veut le nombre de ventes et le total en même temps ? Elle utilise la méthode agg. Chaque ligne donne un nom au résultat, puis entre parenthèses la colonne et le calcul à faire. Par exemple, nombre égale montant, count veut dire : compte les montants, et appelle ce résultat nombre.

Elle obtient un petit tableau, avec une ligne par ville et une colonne par calcul. Douala a 3 ventes pour un total de 7200 francs. Remarquez que les noms de villes sont passés à gauche : ils servent maintenant d'index.

Pour croiser deux questions, la méthode pivot_table présente le résultat en grille : les villes en lignes, les articles en colonnes, et le total des ventes dans chaque case. Dans le code, index dit ce qui va en lignes, columns ce qui va en colonnes, values la colonne à calculer, et aggfunc le calcul à faire. Une case vide veut dire ici qu'aucune vente de cet article n'a eu lieu dans cette ville : Garoua n'a vendu que du savon.

Parfois, l'information est dans deux fichiers. Le premier dit combien d'articles ont été vendus, et le second, le catalogue, donne le prix de chaque article.

La méthode merge les réunit. Avec on égale article, pandas cherche pour chaque ligne le même article dans le catalogue, et il ajoute son prix sur la même ligne. La colonne article est le lien entre les deux tableaux, comme un nom qui se trouverait sur deux listes différentes.

Il ne reste plus qu'à multiplier la quantité par le prix. Pour le savon, 3 fois 800 donnent 2400.

Dans la leçon, posez vos propres questions à un vrai jeu de données, sans revoir la vidéo. Et si vous hésitez sur le découpage, repensez aux paniers.

Voix : Google Chirp 3 HD (Despina, Enceladus).

Photos : One Idea LLC, StockSnap, CC0

PartagerWhatsAppLinkedInFacebookXTelegram