Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Komplizierte Gruppierung | Daten Aggregieren
Fortgeschrittene Techniken in Pandas
course content

Kursinhalt

Fortgeschrittene Techniken in Pandas

Fortgeschrittene Techniken in Pandas

1. Vertraut Werden mit Indizierung und Datenauswahl
2. Umgang mit Bedingungen
3. Daten Extrahieren
4. Daten Aggregieren
5. Datenvorverarbeitung

book
Komplizierte Gruppierung

Es kommt manchmal vor, dass wir mit den eingebauten pandas-Funktionen wie .mean() oder .min() beim Gruppieren nicht zufrieden sind.

Schauen Sie sich die Spalte 'Length' an; hier haben wir die Fluglänge in Minuten. Stellen Sie sich vor, wir möchten die maximale Zeit in Stunden für Elemente berechnen, die denselben Wert in der Spalte 'Flight' und dann in der Spalte 'Airline' haben. Dazu können wir den Maximalwert der Spalte 'Length' für jeden Gruppenschlüssel berechnen und dann durch 60 teilen. Schauen Sie sich das Beispiel und die Erklärung unten an.

1234
import 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[['Flight', 'Airline', 'Length']].groupby(['Flight', 'Airline']).apply(lambda x: x['Length'].max()/60) print(data_flights.head(10))
copy

Erklärung:

Wir haben das Beispiel aus den vorherigen Kapiteln etwas komplizierter gemacht, sodass beim Gruppieren der Daten alles gleich bleibt; wenden wir uns der .apply()-Methode zu.

  • .apply() - es hilft, eine spezifische Funktion auf die benötigten Spalten anzuwenden;
  • in der lambda-Funktion ist x das Argument und x['Length'].max()/60 der Ausdruck. Die Funktion findet den maximalen Wert für jeden Gruppenschlüssel und teilt den aggregierten Wert durch 60.
Aufgabe

Swipe to start coding

Ihre Aufgabe besteht darin, Daten nach dem Flughafen, von dem der Flug gestartet ist, und dann nach dem Wochentag zu gruppieren. Berechnen Sie die minimale Zeitdauer der Summe der Spalten 'Length' und 'Time' der Gruppen, um herauszufinden, wie lange der Flug mit Verspätung dauern kann. Befolgen Sie den Algorithmus, um die Aufgabe zu bewältigen:

Daten gruppieren:

  • Speichern Sie die Liste der Spalten 'AirportFrom', 'Airline', 'Time' und 'Length' (in dieser Reihenfolge) in der Variablen columns;
  • Extrahieren Sie columns aus data;
  • Die Reihenfolge ist entscheidend innerhalb der .groupby()-Methode; setzen Sie die Spalten 'AirportFrom' und 'Airline' in dieser Reihenfolge;
  • Wenden Sie die Funktion auf die Werte des Datensatzes mit denselben Gruppenschlüsseln an;
  • Berechnen Sie die Summe von zwei Spalten: 'Length' und 'Time'. Finden Sie dann deren Minimum.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 3
toggle bottom row

book
Komplizierte Gruppierung

Es kommt manchmal vor, dass wir mit den eingebauten pandas-Funktionen wie .mean() oder .min() beim Gruppieren nicht zufrieden sind.

Schauen Sie sich die Spalte 'Length' an; hier haben wir die Fluglänge in Minuten. Stellen Sie sich vor, wir möchten die maximale Zeit in Stunden für Elemente berechnen, die denselben Wert in der Spalte 'Flight' und dann in der Spalte 'Airline' haben. Dazu können wir den Maximalwert der Spalte 'Length' für jeden Gruppenschlüssel berechnen und dann durch 60 teilen. Schauen Sie sich das Beispiel und die Erklärung unten an.

1234
import 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[['Flight', 'Airline', 'Length']].groupby(['Flight', 'Airline']).apply(lambda x: x['Length'].max()/60) print(data_flights.head(10))
copy

Erklärung:

Wir haben das Beispiel aus den vorherigen Kapiteln etwas komplizierter gemacht, sodass beim Gruppieren der Daten alles gleich bleibt; wenden wir uns der .apply()-Methode zu.

  • .apply() - es hilft, eine spezifische Funktion auf die benötigten Spalten anzuwenden;
  • in der lambda-Funktion ist x das Argument und x['Length'].max()/60 der Ausdruck. Die Funktion findet den maximalen Wert für jeden Gruppenschlüssel und teilt den aggregierten Wert durch 60.
Aufgabe

Swipe to start coding

Ihre Aufgabe besteht darin, Daten nach dem Flughafen, von dem der Flug gestartet ist, und dann nach dem Wochentag zu gruppieren. Berechnen Sie die minimale Zeitdauer der Summe der Spalten 'Length' und 'Time' der Gruppen, um herauszufinden, wie lange der Flug mit Verspätung dauern kann. Befolgen Sie den Algorithmus, um die Aufgabe zu bewältigen:

Daten gruppieren:

  • Speichern Sie die Liste der Spalten 'AirportFrom', 'Airline', 'Time' und 'Length' (in dieser Reihenfolge) in der Variablen columns;
  • Extrahieren Sie columns aus data;
  • Die Reihenfolge ist entscheidend innerhalb der .groupby()-Methode; setzen Sie die Spalten 'AirportFrom' und 'Airline' in dieser Reihenfolge;
  • Wenden Sie die Funktion auf die Werte des Datensatzes mit denselben Gruppenschlüsseln an;
  • Berechnen Sie die Summe von zwei Spalten: 'Length' und 'Time'. Finden Sie dann deren Minimum.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 3
Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
We're sorry to hear that something went wrong. What happened?
some-alt