single
Fortgeschrittene Gruppierung
Swipe um das Menü anzuzeigen
Erweitern wir unser Wissen über die Methode .groupby(). Wie Sie sich erinnern, können wir die Methode .agg() verwenden. Der Hauptvorteil dieser Funktion liegt in ihrer Flexibilität: Sie ermöglicht es, mehrere, unterschiedliche Aggregationen auf mehrere Spalten gleichzeitig anzuwenden und liefert eine übersichtliche Zusammenfassungstabelle.
Sehen Sie sich das folgende Beispiel an. Wir haben Flüge nach 'Airline' gruppiert. Anschließend haben wir mit .agg() die Gesamtanzahl der Flüge (über die Spalte 'Delay') gezählt und gleichzeitig die kürzeste sowie längste Flugdauer (über die Spalte 'Length') ermittelt. Sehr praktisch, nicht wahr?
1234import pandas as pd data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/plane', index_col = 0) data_flights = data.groupby('Airline').agg({'Delay': 'count', 'Length': ['min', 'max']}) print(data_flights.head(10))
Erläuterung:
.agg({'Delay': 'count', 'Length': ['min', 'max']})
.agg(): Kurzform für "aggregate" (aggregieren). Diese Methode fasst die gruppierten Daten anhand der von Ihnen angegebenen Regeln zu zusammenfassenden Statistiken zusammen.{}: Wir verwenden ein Python-Dictionary, um bestimmten Spalten bestimmte Operationen zuzuweisen. Die Schlüssel sind die gewünschten Spaltennamen, die Werte die anzuwendenden Funktionen.'Delay': 'count': Weist pandas an, die Zählfunktion auf die Spalte'Delay'für jede Gruppe anzuwenden. Beachten Sie, dass wir den String-Alias'count'übergeben, anstattcount()zu schreiben. Pandas erkennt diese Standardnamen für gängige Statistiken.'Length': ['min', 'max']: Wenn Sie mehr als eine Funktion auf eine einzelne Spalte anwenden möchten, müssen Sie die Funktionsnamen in eine Liste[]setzen. Hier berechnen wir sowohl den Minimal- als auch den Maximalwert für die Spalte'Length'.
Da wir mehrere Funktionen angewendet haben, erstellt das resultierende DataFrame automatisch hierarchische (MultiIndex-)Spalten. Sie sehen Length auf der obersten Ebene, mit min und max ordentlich darunter kategorisiert.
Swipe to start coding
Ihre Aufgabe ist es, tiefer einzutauchen und die durchschnittlichen sowie maximalen Verspätungszeiten in Abhängigkeit vom Startflughafen und anschließend vom Zielflughafen zu betrachten. Untersuchen Sie außerdem die mittlere Flugdauer. Befolgen Sie dazu den folgenden Algorithmus:
Daten gruppieren:
- Wenden Sie die Methode
.groupby()auf den Datensatzdataan; - Geben Sie innerhalb der
.groupby()-Methode die Spalten'AirportFrom'und'AirportTo'an; die Reihenfolge ist entscheidend; - Berechnen Sie mit der Methode
.agg()die aggregierten Werte: den Durchschnitts- und Maximalwert in der Spalte'Time'sowie den Medianwert der Spalte'Length'.
Lösung
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen