Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Ingewikkelde Groepering | Gegevens Aggregeren
Geavanceerde Technieken in Pandas

bookIngewikkelde Groepering

Het komt soms voor dat we niet tevreden zijn met ingebouwde pandas-functies, zoals .mean() of .min() tijdens het groeperen.

Bekijk de kolom 'Length'; hierin staat de vluchtduur in minuten. Stel dat we de maximale tijd in uren willen berekenen voor items met dezelfde waarde in de kolom 'Flight' en vervolgens in de kolom 'Airline'. Hiervoor kunnen we de maximale waarde van de kolom 'Length' voor elke groepssleutel berekenen en deze vervolgens delen door 60. Bekijk het onderstaande voorbeeld en de uitleg.

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

Uitleg:

We hebben het voorbeeld uit de vorige hoofdstukken iets ingewikkelder gemaakt, maar bij het groeperen van data blijft alles hetzelfde; laten we nu de .apply()-methode bekijken.

.apply(lambda x: x['Length'].max()/60)
  • .apply() - hiermee kan een specifieke functie op de gewenste kolommen worden toegepast;
  • in de lambda-functie is x het argument en x['Length'].max()/60 de expressie. De functie zoekt dus de maximale waarde voor elke groepssleutel en deelt de geaggregeerde waarde door 60.
Taak

Swipe to start coding

De opdracht is om gegevens te groeperen op basis van de luchthaven van vertrek en vervolgens op de weekdag. Bereken de minimale tijdsduur van de som van de kolommen 'Length' en 'Time' binnen de groepen om te bepalen hoe lang een vlucht met vertraging kan duren. Volg het algoritme om de taak uit te voeren:

Gegevens groeperen:

  • Sla de lijst met kolommen 'AirportFrom', 'Airline', 'Time' en 'Length' (in deze volgorde) op in de variabele columns;
  • Extraheer columns uit data;
  • De volgorde is essentieel binnen de .groupby()-methode; plaats de kolommen 'AirportFrom' en 'Airline' in deze volgorde;
  • Pas de functie toe op de waarden van de dataset met dezelfde groepssleutels;
  • Bereken de som van de twee kolommen: 'Length' en 'Time'. Zoek vervolgens hun minimumwaarde.

Oplossing

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 3
single

single

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

close

Awesome!

Completion rate improved to 3.03

bookIngewikkelde Groepering

Veeg om het menu te tonen

Het komt soms voor dat we niet tevreden zijn met ingebouwde pandas-functies, zoals .mean() of .min() tijdens het groeperen.

Bekijk de kolom 'Length'; hierin staat de vluchtduur in minuten. Stel dat we de maximale tijd in uren willen berekenen voor items met dezelfde waarde in de kolom 'Flight' en vervolgens in de kolom 'Airline'. Hiervoor kunnen we de maximale waarde van de kolom 'Length' voor elke groepssleutel berekenen en deze vervolgens delen door 60. Bekijk het onderstaande voorbeeld en de uitleg.

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

Uitleg:

We hebben het voorbeeld uit de vorige hoofdstukken iets ingewikkelder gemaakt, maar bij het groeperen van data blijft alles hetzelfde; laten we nu de .apply()-methode bekijken.

.apply(lambda x: x['Length'].max()/60)
  • .apply() - hiermee kan een specifieke functie op de gewenste kolommen worden toegepast;
  • in de lambda-functie is x het argument en x['Length'].max()/60 de expressie. De functie zoekt dus de maximale waarde voor elke groepssleutel en deelt de geaggregeerde waarde door 60.
Taak

Swipe to start coding

De opdracht is om gegevens te groeperen op basis van de luchthaven van vertrek en vervolgens op de weekdag. Bereken de minimale tijdsduur van de som van de kolommen 'Length' en 'Time' binnen de groepen om te bepalen hoe lang een vlucht met vertraging kan duren. Volg het algoritme om de taak uit te voeren:

Gegevens groeperen:

  • Sla de lijst met kolommen 'AirportFrom', 'Airline', 'Time' en 'Length' (in deze volgorde) op in de variabele columns;
  • Extraheer columns uit data;
  • De volgorde is essentieel binnen de .groupby()-methode; plaats de kolommen 'AirportFrom' en 'Airline' in deze volgorde;
  • Pas de functie toe op de waarden van de dataset met dezelfde groepssleutels;
  • Bereken de som van de twee kolommen: 'Length' en 'Time'. Zoek vervolgens hun minimumwaarde.

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 3
single

single

some-alt