Werken met Draaitabellen
Python heeft een equivalent van de .groupby()
-methode die tot hetzelfde resultaat kan leiden. Het is aan jou welke functie je gebruikt. Laten we dit leren aan de hand van een voorbeeld. Met de volgende functie, genaamd .pivot_table()
, berekenen we de gemiddelde waarden van de kolom 'Length'
die dezelfde waarde hebben in de kolom 'Flight'
:
123456789101112131415import 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) # The code using .groupby() data_flights_1 = data[['Length', 'Flight']].groupby('Flight').mean() # The same code using .groupby() data_flights_2 = data[['Length', 'Flight']].groupby('Flight').agg('mean') # The same code using .pivot_table() data_flights_3 = pd.pivot_table(data, values = 'Length', index = 'Flight', aggfunc = 'mean') print(data_flights_1.head())
Uitleg:
data = pd.pivot_table(data, values = 'Length',
index = 'Flight',
aggfunc = 'mean')
pd.pivot_table()
- functie die draaitabellen maakt;data
- data frame dat we gebruiken;values = 'Length'
- aan het argumentvalues
wijzen we kolommen toe met dezelfde groep, waarop we de berekening van het gemiddelde, maximum, enz. zullen toepassen. Als je wilt groeperen op meerdere kolommen, zet ze dan in een lijst; de volgorde is niet van belang;index = 'Flight'
-index
is een argument waaraan je de naam van een kolom of kolommen toewijst waarop je wilt groeperen. Als je wilt groeperen op meerdere kolommen, zet ze dan in een lijst; de volgorde is van belang, zoals bij de.groupby()
-functie;aggfunc = 'mean'
- hetzelfde alsagg
in de.groupby()
-methode,aggfunc
heeft exact dezelfde syntaxis alsagg
. Je kunt hier dus meerdere functies plaatsen door ze in een lijst te zetten om functies voor verschillende kolommen te specificeren met behulp van accolades.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Can you explain the difference between .groupby() and .pivot_table() in more detail?
What other aggregation functions can I use with .pivot_table()?
How can I group by multiple columns using .pivot_table()?
Awesome!
Completion rate improved to 3.03
Werken met Draaitabellen
Veeg om het menu te tonen
Python heeft een equivalent van de .groupby()
-methode die tot hetzelfde resultaat kan leiden. Het is aan jou welke functie je gebruikt. Laten we dit leren aan de hand van een voorbeeld. Met de volgende functie, genaamd .pivot_table()
, berekenen we de gemiddelde waarden van de kolom 'Length'
die dezelfde waarde hebben in de kolom 'Flight'
:
123456789101112131415import 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) # The code using .groupby() data_flights_1 = data[['Length', 'Flight']].groupby('Flight').mean() # The same code using .groupby() data_flights_2 = data[['Length', 'Flight']].groupby('Flight').agg('mean') # The same code using .pivot_table() data_flights_3 = pd.pivot_table(data, values = 'Length', index = 'Flight', aggfunc = 'mean') print(data_flights_1.head())
Uitleg:
data = pd.pivot_table(data, values = 'Length',
index = 'Flight',
aggfunc = 'mean')
pd.pivot_table()
- functie die draaitabellen maakt;data
- data frame dat we gebruiken;values = 'Length'
- aan het argumentvalues
wijzen we kolommen toe met dezelfde groep, waarop we de berekening van het gemiddelde, maximum, enz. zullen toepassen. Als je wilt groeperen op meerdere kolommen, zet ze dan in een lijst; de volgorde is niet van belang;index = 'Flight'
-index
is een argument waaraan je de naam van een kolom of kolommen toewijst waarop je wilt groeperen. Als je wilt groeperen op meerdere kolommen, zet ze dan in een lijst; de volgorde is van belang, zoals bij de.groupby()
-functie;aggfunc = 'mean'
- hetzelfde alsagg
in de.groupby()
-methode,aggfunc
heeft exact dezelfde syntaxis alsagg
. Je kunt hier dus meerdere functies plaatsen door ze in een lijst te zetten om functies voor verschillende kolommen te specificeren met behulp van accolades.
Bedankt voor je feedback!