Groeperen op Meerdere Kolommen
Laten we wat informatie toevoegen over de .groupby()
-methode. Je kunt groeperen op meerdere kolommen, maar de volgorde is in dit geval cruciaal. In het vorige hoofdstuk groepeerden we gegevens op vluchtnummer en telden we het aantal vertragingen. We kunnen deze taak ingewikkelder maken door niet alleen te groeperen op de kolom 'Flight'
, maar ook op de kolom 'Airline'
. Bekijk de informatie over de dataset opnieuw en bekijk dan dit eenvoudige voorbeeld (de uitvoer bevat alleen de eerste 10 rijen):
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[['Flight', 'Delay', 'Airline']].groupby(['Flight', 'Airline']).count() print(data_flights.head(10))
Uitleg:
data[['Flight', 'Delay', 'Airline']].groupby(['Flight', 'Airline']).count()
data[['Flight', 'Delay', 'Airline']]
- kolommen waarmee je werkt, inclusief de kolommen waarop je gaat groeperen;.groupby(['Flight', 'Airline'])
- hier zijn'Flight'
en'Airline'
argumenten van de functie.groupby()
.
Let op: als je op meerdere kolommen wilt groeperen, zet ze dan in een lijst - de volgorde is cruciaal. Dus in ons geval, als rijen van de dataset dezelfde waarde hebben in de kolom 'Flight'
, behoren ze tot één groep. Vervolgens vindt de functie binnen die groepen andere groepen voor rijen met dezelfde waarde in de kolom 'Airline'
. Daarna, dankzij de methode .count()
die de rijen telt, berekent onze functie het aantal rijen in de kolom 'Delay'
die dezelfde waarde hebben in de kolom 'Airline'
voor elke 'Flight'
-groep.
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 gemiddelde tijd voor deze groepen. Volg het algoritme om de taak uit te voeren:
- Gegevens groeperen:
- Selecteer de kolommen
'AirportFrom'
,'DayOfWeek'
en'Time'
uitdata
(in deze volgorde); - Pas de
.groupby()
-methode toe op deze kolommen; - Binnen de
.groupby()
-methode, groepeer op'AirportFrom'
en'DayOfWeek'
(volgorde is cruciaal); - Bereken de gemiddelde waarde van de kolom
'Time'
.
- Selecteer de kolommen
- Toon de eerste
10
rijen vandata_flights
.
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.
Awesome!
Completion rate improved to 3.03
Groeperen op Meerdere Kolommen
Veeg om het menu te tonen
Laten we wat informatie toevoegen over de .groupby()
-methode. Je kunt groeperen op meerdere kolommen, maar de volgorde is in dit geval cruciaal. In het vorige hoofdstuk groepeerden we gegevens op vluchtnummer en telden we het aantal vertragingen. We kunnen deze taak ingewikkelder maken door niet alleen te groeperen op de kolom 'Flight'
, maar ook op de kolom 'Airline'
. Bekijk de informatie over de dataset opnieuw en bekijk dan dit eenvoudige voorbeeld (de uitvoer bevat alleen de eerste 10 rijen):
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[['Flight', 'Delay', 'Airline']].groupby(['Flight', 'Airline']).count() print(data_flights.head(10))
Uitleg:
data[['Flight', 'Delay', 'Airline']].groupby(['Flight', 'Airline']).count()
data[['Flight', 'Delay', 'Airline']]
- kolommen waarmee je werkt, inclusief de kolommen waarop je gaat groeperen;.groupby(['Flight', 'Airline'])
- hier zijn'Flight'
en'Airline'
argumenten van de functie.groupby()
.
Let op: als je op meerdere kolommen wilt groeperen, zet ze dan in een lijst - de volgorde is cruciaal. Dus in ons geval, als rijen van de dataset dezelfde waarde hebben in de kolom 'Flight'
, behoren ze tot één groep. Vervolgens vindt de functie binnen die groepen andere groepen voor rijen met dezelfde waarde in de kolom 'Airline'
. Daarna, dankzij de methode .count()
die de rijen telt, berekent onze functie het aantal rijen in de kolom 'Delay'
die dezelfde waarde hebben in de kolom 'Airline'
voor elke 'Flight'
-groep.
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 gemiddelde tijd voor deze groepen. Volg het algoritme om de taak uit te voeren:
- Gegevens groeperen:
- Selecteer de kolommen
'AirportFrom'
,'DayOfWeek'
en'Time'
uitdata
(in deze volgorde); - Pas de
.groupby()
-methode toe op deze kolommen; - Binnen de
.groupby()
-methode, groepeer op'AirportFrom'
en'DayOfWeek'
(volgorde is cruciaal); - Bereken de gemiddelde waarde van de kolom
'Time'
.
- Selecteer de kolommen
- Toon de eerste
10
rijen vandata_flights
.
Oplossing
Bedankt voor je feedback!
single