PaliSkill
Python avancé

Leçon 10 / 10 — Chapitre 6: Manipuler des données avec pandas

Cas pratique : analyser un petit jeu de ventes

Cette dernière leçon combine sélection, filtrage, colonne calculée, tri et groupby, sur un petit jeu de données de ventes.

import pandas as pd

ventes = pd.DataFrame({
    "produit": ["riz", "huile", "sucre", "riz", "huile"],
    "categorie": ["alimentation", "alimentation", "alimentation", "alimentation", "alimentation"],
    "prix_unitaire": [5, 8, 3, 5, 8],
    "quantite": [10, 0, 15, 5, 3],
})

ventes_reelles = ventes[ventes["quantite"] > 0]

ventes_reelles = ventes_reelles.copy()
ventes_reelles["total"] = ventes_reelles["prix_unitaire"] * ventes_reelles["quantite"]

par_produit = ventes_reelles.groupby("produit")["total"].sum().sort_values(ascending=False)
print(par_produit)

Ce que fait chaque partie :

  • ventes[ventes["quantite"] > 0] filtre les lignes sans vente réelle (vu dans ce chapitre), excluant la ligne huile à quantité 0.
  • .copy() évite un avertissement pandas courant lors de la modification d'un DataFrame filtré ; ["total"] = ... ajoute une colonne calculée (vu dans ce chapitre).
  • .groupby("produit")["total"].sum() (vu dans ce chapitre) totalise les ventes par produit, puis .sort_values(ascending=False) (vu dans ce chapitre) trie du plus vendu en valeur au moins vendu.

Ce code affiche riz en tête avec 75 (50 + 25, ses deux ventes), puis sucre avec 45, puis huile avec 24 (seulement sa seconde vente de 3 unités, la première étant exclue) — trié du total le plus élevé au plus faible.

À vous de jouer : ajoutez une nouvelle vente au DataFrame ventes, et vérifiez que le classement final par produit se met à jour en conséquence.

🔒

Continuez ce module

Débloquez les leçons restantes ainsi que la certification finale.

2 500 XOF / 3,81 € / 4,15 $

Débloquez les 87 leçons restantes de ce module

Votre paiement est vérifié avant l'activation de l'accès