0Pricing
Learn AI with Python · Lektion

GroupBy und Aggregation

df.groupby(), agg(), transform(), apply() und benannte Aggregationen mit Named Aggregation.

GroupBy und Aggregation ist eine kostenlose Learn AI with Python-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Learn AI with Python-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.

Das Split-Apply-Combine-Konzept

GroupBy folgt dem Split-Apply-Combine-Muster: Zeilen werden anhand eines Schlüssels in Gruppen aufgeteilt, auf jede Gruppe wird eine Funktion angewendet und die Ergebnisse anschließend zu einem DataFrame zusammengeführt. Dieses Muster bildet die Grundlage der meisten analytischen Zusammenfassungen.

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

Grundlegendes groupby

df.groupby("col") erstellt ein gruppiertes Objekt. Durch das Verketten einer Aggregation wie .mean() wird ein Wert pro Gruppe berechnet.

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

Mehrere Aggregationen

Rufen Sie mit .agg([...]) mehrere Reduktionen gleichzeitig auf. Dadurch wird eine Spalte pro Funktion erzeugt.

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

Aggregations-Dict pro Spalte

Übergeben Sie ein Dict an .agg, um unterschiedliche Funktionen auf unterschiedliche Spalten anzuwenden.

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

Benannte Aggregation

Mit einer benannten Aggregation erhalten Ausgabespalten über die Syntax von pd.NamedAgg aussagekräftige Namen. Dadurch vermeiden Sie verwirrende mehrstufige Spaltenüberschriften.

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

Gruppieren nach mehreren Schlüsseln

Übergeben Sie eine Liste von Spalten, um gleichzeitig nach mehreren Schlüsseln zu gruppieren. Das Ergebnis ist hierarchisch aufgebaut (MultiIndex).

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

transform: Ausgabe mit gleicher Form

.transform() gibt ein Ergebnis zurück, das an den ORIGINALZEILEN ausgerichtet ist, nicht eine Zeile pro Gruppe. Das ist ideal, um eine Gruppenstatistik als neue Spalte wieder hinzuzufügen.

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

transform zur Normalisierung

Da transform das Ergebnis zurück auf jede Zeile broadcastet, können Sie innerhalb von Gruppen normalisieren, beispielsweise indem Sie den Gruppenmittelwert subtrahieren.

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

apply für benutzerdefinierte Logik

.apply() übergibt jede Gruppe (als Sub-DataFrame) an Ihre Funktion. Verwenden Sie es für Logik, die sich mit integrierten Aggregationen nicht ausdrücken lässt, etwa um die Top-N-Zeilen pro Gruppe zurückzugeben.

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

agg vs. transform vs. apply

agg reduziert jede Gruppe auf einen Wert. transform gibt einen Wert pro ursprünglicher Zeile zurück. apply ist die flexible (aber langsamere) Allzwecklösung. Wählen Sie aus Gründen der Klarheit und Geschwindigkeit die spezifischste Variante.

Gruppierung mit reset_index aufheben

Bei GroupBy-Ergebnissen stehen die Schlüssel im Index. Rufen Sie .reset_index() auf, um sie wieder in reguläre Spalten umzuwandeln, wie es der meiste nachgelagerte Code erwartet.

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

Kurzer Test

Testen Sie Ihr Verständnis von groupby.

Zusammenfassung

Die wichtigsten Aspekte von GroupBy:

  • Split-Apply-Combine mit df.groupby("col")
  • .agg([...]) sowie Dict- und benannte Aggregationen für mehrere Statistiken
  • .transform() gibt Ergebnisse mit der Form des Originals zurück
  • .apply() für beliebige Logik pro Gruppe
  • Rufen Sie immer .reset_index() auf, um Gruppenschlüssel wieder als Spalten auszugeben

Häufig gestellte Fragen

Ist die Lektion „GroupBy und Aggregation“ kostenlos?

Ja — der vollständige Text von „GroupBy und Aggregation“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Learn AI with Python-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „GroupBy und Aggregation“?

df.groupby(), agg(), transform(), apply() und benannte Aggregationen mit Named Aggregation. Du übst Learn AI with Python mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Learn AI with Python zu starten?

Keine Vorkenntnisse erforderlich. Learn AI with Python auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „GroupBy und Aggregation“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Learn AI with Python-Lektion Code schreiben und ausführen?

Ja. Jede Learn AI with Python-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. GroupBy und Aggregation
  2. Pivot-Tabellen und Kreuztabellierung
  3. Fortgeschrittenes Merging und Joining
  4. Zeitreihen in Pandas
← Zurück zu Learn AI with Python