Håndtering af Pivottabeller
Python har en analog til .groupby()
-metoden, som kan føre til det samme resultat. Det er op til dig, hvilken funktion du vil bruge. Lad os lære det ved hjælp af et eksempel. Ved at bruge følgende funktion, kaldet .pivot_table()
, vil vi beregne gennemsnitsværdierne for kolonnen 'Length'
, som har samme værdi i kolonnen '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())
Forklaring:
data = pd.pivot_table(data, values = 'Length',
index = 'Flight',
aggfunc = 'mean')
pd.pivot_table()
- funktion, der opretter pivottabeller;data
- data frame, som vi bruger;values = 'Length'
- til argumentetvalues
tildeles kolonner med samme gruppe, hvorpå vi vil anvende beregning af gennemsnit, maksimum osv. Hvis du vil gruppere efter flere kolonner, skal de angives i en liste; rækkefølgen er ikke afgørende;index = 'Flight'
-index
er et argument, hvor du angiver navnet på en kolonne eller kolonner, som du vil gruppere efter. Hvis du vil gruppere efter flere kolonner, skal de angives i en liste; rækkefølgen er afgørende, ligesom i.groupby()
-funktionen;aggfunc = 'mean'
- det samme somagg
i.groupby()
-metoden,aggfunc
har nøjagtig samme syntaks somagg
. Du kan derfor angive flere funktioner her ved at placere dem i en liste for at specificere funktioner for forskellige kolonner ved hjælp af krøllede parenteser.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
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
Håndtering af Pivottabeller
Stryg for at vise menuen
Python har en analog til .groupby()
-metoden, som kan føre til det samme resultat. Det er op til dig, hvilken funktion du vil bruge. Lad os lære det ved hjælp af et eksempel. Ved at bruge følgende funktion, kaldet .pivot_table()
, vil vi beregne gennemsnitsværdierne for kolonnen 'Length'
, som har samme værdi i kolonnen '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())
Forklaring:
data = pd.pivot_table(data, values = 'Length',
index = 'Flight',
aggfunc = 'mean')
pd.pivot_table()
- funktion, der opretter pivottabeller;data
- data frame, som vi bruger;values = 'Length'
- til argumentetvalues
tildeles kolonner med samme gruppe, hvorpå vi vil anvende beregning af gennemsnit, maksimum osv. Hvis du vil gruppere efter flere kolonner, skal de angives i en liste; rækkefølgen er ikke afgørende;index = 'Flight'
-index
er et argument, hvor du angiver navnet på en kolonne eller kolonner, som du vil gruppere efter. Hvis du vil gruppere efter flere kolonner, skal de angives i en liste; rækkefølgen er afgørende, ligesom i.groupby()
-funktionen;aggfunc = 'mean'
- det samme somagg
i.groupby()
-metoden,aggfunc
har nøjagtig samme syntaks somagg
. Du kan derfor angive flere funktioner her ved at placere dem i en liste for at specificere funktioner for forskellige kolonner ved hjælp af krøllede parenteser.
Tak for dine kommentarer!