Formation
90 min de lecture
Manipulation de donnΓ©es avec Pandas
π¦ Groupby et agrΓ©gation avec Pandas
Objectifs d'apprentissage
π― Objectifs :\n
1Utiliser groupby\n2. Appliquer des agrΓ©gations\n3. Utiliser agg()\n4. Comprendre transform()
Introduction
π Groupby permet d'analyser des donnΓ©es par catΓ©gorie.
Contenu thΓ©orique
Groupby :\n
PYTHON
\n# Groupement simple\ndf.groupby("categorie").mean()\n\n# Plusieurs colonnes\ndf.groupby(["categorie", "sous_categorie"]).agg({\n "ventes": "sum",\n "quantite": "mean"\n})\n\n# AgrΓ©gations multiples\ndf.groupby("categorie").agg(["mean", "sum", "count"])\n\n# Transform\ndf["moyenne_groupe"] = df.groupby("categorie")["valeur"].transform("mean")\nExemples pratiques
π» Exemple : Analyse des ventes par rΓ©gion\n
PYTHON
\nimport pandas as pd\n\nventes = pd.DataFrame({\n "region": ["Nord", "Sud", "Nord", "Est", "Sud", "Nord"],\n "produit": ["A", "B", "C", "A", "B", "C"],\n "ventes": [100, 200, 150, 300, 250, 180],\n "quantite": [10, 20, 15, 30, 25, 18]\n})\n\n# Ventes totales par rΓ©gion\ntotal_par_region = ventes.groupby("region")["ventes"].sum()\nprint("Ventes totales par rΓ©gion :")\nprint(total_par_region)\n\n# Statistiques par produit\nstats_produit = ventes.groupby("produit").agg({\n "ventes": ["mean", "sum"],\n "quantite": ["sum", "count"]\n})\nprint("\\nStatistiques par produit :")\nprint(stats_produit)\n\n# Moyenne par rΓ©gion\nventes["moyenne_region"] = ventes.groupby("region")["ventes"].transform("mean")\nprint("\\nAvec moyenne par rΓ©gion :")\nprint(ventes)\nBonnes pratiques
1Utiliser agg() pour multiples agrΓ©gations\nβ
2. Utiliser transform() pour ajouter des colonnes\nβ
3. reset_index() pour retrouver un DataFrame normal\nβ
4. Utiliser as_index=False dans groupby
Pièges à éviter
Oublier que groupby retourne un objet GroupBy\n
Appliquer une agrégation après groupby
RΓ©sumΓ©
groupby() : regroupement\nβ
agg() : multiples agrΓ©gations\nβ
transform() : ajout de colonnes\nβ
reset_index() : DataFrame normal
Ressources supplΓ©mentaires
π pandas.pydata.org/docs/user_guide/groupby.html