Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Ingewikkelde Groepering | Gegevens Aggregëren
Data Wrangling met Pandas
Sectie 4. Hoofdstuk 3
single

single

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.

Kijk naar de kolom 'Length'; hierin staat de vluchtduur in minuten. Stel je voor 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 voorbeeld en de uitleg hieronder.

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 kijken naar de .apply()-methode.

.apply(lambda x: x['Length'].max()/60)
  • .apply() - hiermee kun je een specifieke functie toepassen op de gewenste kolommen;
  • 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

Veeg om te beginnen met coderen

Je taak hier is om de vluchtduur te analyseren met inachtneming van luchthaven, luchtvaartmaatschappij en weekdag. Je groepeert de gegevens om de minimale totale vliegtijd (de som van 'Length' en 'Time') te bepalen voor elke unieke combinatie van vertrek luchthaven, luchtvaartmaatschappij en weekdag.

Volg het algoritme stap voor stap:

  1. Sla de lijst met kolommen 'AirportFrom', 'Airline', 'DayOfWeek', 'Time' en 'Length' (in deze volgorde) op in de variabele columns.
  2. Extraheer deze kolommen uit data met behulp van bracketnotatie (data[columns]).
  3. Groepeer de dataset op 'AirportFrom', 'Airline' en 'DayOfWeek' (in precies deze volgorde).
  4. Gebruik binnen de .groupby()-methode de .apply()-functie om de som van de kolommen 'Length' en 'Time' voor elke groep te berekenen en bepaal vervolgens het minimum van deze som.
  5. Ken het resultaat toe aan een variabele genaamd data_flights.
  6. Toon de eerste 10 rijen van de resulterende Series met .head(10).

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

Vraag AI

expand

Vraag AI

ChatGPT

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

some-alt