ConsigneCalculez la note moyenne par ville
groupby() permet de regrouper les lignes selon une (ou plusieurs) colonne(s), puis d'appliquer une agrégation (moyenne, somme, count...) sur chaque groupe.
C'est l'équivalent du group BY en sql.
Syntaxe
df.groupby('colonne_de_groupe')['colonne_a_agreger'].fonction()df = pd.DataFrame({ 'nom': ['Alice','Bob','Charlie','Diana'], 'note': [14,11,17,13], 'ville': ['Paris','Lyon','Paris','Lyon']})df.groupby('ville')['note'].mean()# ville# Lyon 12.0# Paris 15.5Décomposé en 3 étapes (split-apply-combine) :
1. SPLIT : regroupe les lignes par valeur de 'ville' (Paris : Alice+Charlie ; Lyon : Bob+Diana)2. APPLY : applique .mean() sur 'note' dans chaque groupe3. COMBINE : assemble en une Series indexée par ville.min() / .max().first() / .last()# Plusieurs colonnes de groupedf.groupby(['ville', 'sexe'])['salaire'].mean()# Plusieurs agrégations à la foisdf.groupby('ville')['note'].agg(['mean', 'min', 'max', 'count'])# Différentes agrégations par colonnedf.groupby('ville').agg({'note': 'mean', 'age': 'max'}).reset_index() après un groupby pour récupérer un DataFrame plat avec la colonne de groupe comme colonne normale.
Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →