0Pricing
Learn AI with Python · Leçon

GroupBy et agrégation

df.groupby(), agg(), transform(), apply() et agrégations nommées avec Named Aggregation.

GroupBy et agrégation est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 4 leçons au total.

Le principe diviser-appliquer-combiner

GroupBy suit le modèle diviser-appliquer-combiner : diviser les lignes en groupes selon une clé, appliquer une fonction à chaque groupe, puis combiner les résultats dans un seul tableau. C’est la base de la plupart des synthèses analytiques.

import pandas as pd
df = pd.DataFrame({
    "dept": ["A", "A", "B", "B", "B"],
    "salary": [50, 70, 40, 60, 80],
})

groupby de base

df.groupby("col") crée un objet groupé. En enchaînant une agrégation comme .mean(), vous calculez une valeur par groupe.

print(df.groupby("dept")["salary"].mean())
# dept
# A    60.0
# B    60.0

Agrégations multiples

Appelez plusieurs réductions à la fois avec .agg([...]) pour produire une colonne par fonction.

print(df.groupby("dept")["salary"].agg(["mean", "min", "max", "count"]))

Dictionnaire d’agrégation par colonne

Transmettez un dictionnaire à .agg pour appliquer des fonctions différentes à différentes colonnes.

df["bonus"] = [5, 7, 4, 6, 8]
out = df.groupby("dept").agg({"salary": "mean", "bonus": "sum"})
print(out)

Agrégation nommée

L’agrégation nommée donne des noms clairs aux colonnes de sortie en utilisant la syntaxe pd.NamedAgg. Elle évite les en-têtes de colonnes multiniveaux difficiles à interpréter.

out = df.groupby("dept").agg(
    avg_salary=("salary", "mean"),
    total_bonus=("bonus", "sum"),
)
print(out)

Regroupement selon plusieurs clés

Transmettez une liste de colonnes pour regrouper selon plusieurs clés à la fois, ce qui produit un résultat hiérarchique (MultiIndex).

df["level"] = ["jr", "sr", "jr", "sr", "sr"]
print(df.groupby(["dept", "level"])["salary"].mean())

transform : même forme en sortie

.transform() renvoie un résultat aligné sur les lignes d’origine (ORIGINAL), et non une ligne par groupe. C’est idéal pour ajouter une statistique de groupe comme nouvelle colonne.

df["dept_avg"] = df.groupby("dept")["salary"].transform("mean")
print(df[["dept", "salary", "dept_avg"]])

transform pour la normalisation

Comme transform diffuse le résultat sur chaque ligne, vous pouvez normaliser les valeurs au sein des groupes, par exemple en soustrayant la moyenne du groupe.

df["centered"] = df["salary"] - df.groupby("dept")["salary"].transform("mean")
print(df[["dept", "salary", "centered"]])

apply pour une logique personnalisée

.apply() transmet chaque groupe (sous la forme d’un sous-DataFrame) à votre fonction. Utilisez-le pour une logique que les agrégations intégrées ne peuvent pas exprimer, comme renvoyer les N premières lignes de chaque groupe.

top = df.groupby("dept").apply(lambda g: g.nlargest(1, "salary"))
print(top[["dept", "salary"]])

agg, transform ou apply

agg réduit chaque groupe à une seule valeur. transform renvoie une valeur par ligne d’origine. apply est la solution flexible (mais plus lente) pour les cas généraux. Choisissez la fonction la plus spécifique pour gagner en clarté et en rapidité.

Dégroupement avec reset_index

Les résultats de GroupBy placent les clés dans l’index. Appelez .reset_index() pour les reconvertir en colonnes ordinaires, comme l’attend la plupart du code utilisé ensuite.

flat = df.groupby("dept")["salary"].mean().reset_index()
print(flat)
#   dept  salary
# 0    A    60.0
# 1    B    60.0

Vérification rapide

Testez votre compréhension de groupby.

Récapitulatif

Principes essentiels de GroupBy :

  • Diviser-appliquer-combiner avec df.groupby("col")
  • .agg([...]) et les agrégations par dictionnaire ou nommées pour plusieurs statistiques
  • .transform() renvoie des résultats de la forme d’origine
  • .apply() pour une logique arbitraire par groupe
  • Utilisez toujours .reset_index() pour rétablir les clés de groupe sous forme de colonnes

Questions Fréquemment Posées

La leçon « GroupBy et agrégation » est-elle gratuite ?

Oui — le texte complet de « GroupBy et agrégation » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « GroupBy et agrégation » ?

df.groupby(), agg(), transform(), apply() et agrégations nommées avec Named Aggregation. Tu pratiques Learn AI with Python avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Learn AI with Python ?

Aucune expérience préalable n'est requise. Learn AI with Python sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « GroupBy et agrégation » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Learn AI with Python ?

Oui. Chaque leçon Learn AI with Python inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. GroupBy et agrégation
  2. Tableaux croisés dynamiques et tableaux de contingence
  3. Fusion et jointure avancées
  4. Séries temporelles dans Pandas
← Retour à Learn AI with Python