PaliSkill
Python avancé

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

Grouper et agréger avec .groupby()

.groupby("colonne") regroupe les lignes ayant la même valeur dans colonne, pour ensuite calculer une statistique par groupe — l'équivalent, en une ligne, de la boucle d'accumulation par catégorie déjà écrite dans Python Intermédiaire.

import pandas as pd

df = pd.DataFrame({
    "categorie": ["alimentation", "alimentation", "hygiene"],
    "montant": [25, 15, 10],
})

totaux = df.groupby("categorie")["montant"].sum()
print(totaux)

Ce code affiche alimentation 40 puis hygiene 10 : .groupby("categorie") forme les groupes, ["montant"] sélectionne la colonne à agréger, et .sum() additionne les montants au sein de chaque groupe séparément — exactement le résultat de la boucle avec .get(cle, 0) vue dans Python Intermédiaire, mais en une seule ligne.

D'autres agrégations fonctionnent selon le même principe : .mean() (moyenne), .count() (nombre de lignes), .max() (maximum) :

moyennes = df.groupby("categorie")["montant"].mean()

Pour plusieurs statistiques à la fois sur un même groupe, .agg() accepte une liste :

resume = df.groupby("categorie")["montant"].agg(["sum", "mean", "count"])

À vous de jouer : avec un DataFrame ayant une colonne de catégorie et une colonne de montant, calculez le total par catégorie avec .groupby().sum().

🔒

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