single
Geavanceerde Groepering
Veeg om het menu te tonen
Laten we onze kennis over de .groupby()-methode uitbreiden. Zoals je je herinnert, kunnen we de .agg()-methode gebruiken. Het belangrijkste voordeel van deze functie is de flexibiliteit: het stelt ons in staat om meerdere, verschillende aggregaties toe te passen op meerdere kolommen tegelijk, wat resulteert in een overzichtelijke samenvattingstabel.
Bekijk het onderstaande voorbeeld. We groepeerden vluchten op 'Airline'. Vervolgens hebben we met .agg() het totale aantal vluchten geteld (met behulp van de kolom 'Delay') en tegelijkertijd de kortste en langste vluchtduur bepaald (met behulp van de kolom 'Length'). Erg handig, nietwaar?
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))
Uitleg:
.agg({'Delay': 'count', 'Length': ['min', 'max']})
.agg(): Afkorting voor "aggregate". Deze methode neemt de gegroepeerde data en vat deze samen tot statistieken op basis van de door jou opgegeven regels.{}: We gebruiken een Python-dictionary om specifieke kolommen te koppelen aan specifieke bewerkingen. De sleutels zijn de kolomnamen waarop je wilt richten, en de waarden zijn de functies die je wilt toepassen.'Delay': 'count': Geeft aan pandas door om de count-functie toe te passen op de kolom'Delay'voor elke groep. Merk op dat we de stringalias'count'gebruiken in plaats vancount(). Pandas herkent deze standaard stringnamen voor veelvoorkomende statistieken.'Length': ['min', 'max']: Als je meer dan één functie op een enkele kolom wilt toepassen, moet je de functienamen in een lijst[]plaatsen. Hier berekenen we zowel de minimale als maximale waarde voor de kolom'Length'.
Omdat we meerdere functies hebben toegepast, maakt de resulterende DataFrame automatisch hiërarchische (MultiIndex) kolommen aan. Je ziet Length op het bovenste niveau, met min en max daaronder netjes gecategoriseerd.
Veeg om te beginnen met coderen
Je taak is om dieper te kijken naar de gemiddelde en maximale vertragingstijden, afhankelijk van de luchthaven van vertrek en vervolgens van de luchthaven van aankomst. Bekijk daarnaast de mediaan van de vluchtduur. Volg het algoritme:
Gegevens groeperen:
- Pas de
.groupby()-methode toe op de datasetdata; - Plaats binnen de
.groupby()-methode de kolommen'AirportFrom'en'AirportTo'; de volgorde is van belang; - Gebruik de
.agg()-methode om de geaggregeerde waarden te berekenen: het gemiddelde en de maximale waarde in de kolom'Time', en de mediaan van de kolom'Length'.
Oplossing
Bedankt voor je feedback!
single
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.