single
Avanceret Gruppering
Stryg for at vise menuen
Lad os udvide vores viden om .groupby()-metoden. Som du husker, kan vi bruge .agg()-metoden. Den primære fordel ved denne funktion er dens fleksibilitet: den gør det muligt at anvende flere, forskellige aggregeringer på flere kolonner samtidigt, hvilket returnerer en overskuelig oversigtstabel.
Se eksemplet nedenfor. Vi grupperede flyvninger efter 'Airline'. Derefter brugte vi .agg() til at tælle det samlede antal flyvninger (ved hjælp af kolonnen 'Delay') og samtidig finde den korteste og længste flyvetid (ved hjælp af kolonnen 'Length'). Meget praktisk, ikke sandt?
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))
Forklaring:
.agg({'Delay': 'count', 'Length': ['min', 'max']})
.agg(): Forkortelse for "aggregate". Denne metode tager de grupperede data og kondenserer dem til oversigtsstatistikker baseret på de regler, du angiver.{}: Vi bruger en Python-ordbog til at knytte specifikke kolonner til specifikke operationer. Nøglerne er de kolonnenavne, du vil målrette, og værdierne er de funktioner, du vil anvende.'Delay': 'count': Angiver til pandas, at tællefunktionen skal anvendes på kolonnen'Delay'for hver gruppe. Bemærk, at vi bruger streng-aliaset'count'i stedet for at skrivecount(). Pandas genkender disse standard strengnavne for almindelige statistikker.'Length': ['min', 'max']: Hvis du vil anvende mere end én funktion på en enkelt kolonne, skal du placere funktionsnavnene i en liste[]. Her beregner vi både minimums- og maksimumsværdierne for kolonnen'Length'.
Fordi vi har anvendt flere funktioner, vil den resulterende DataFrame automatisk oprette hierarkiske (MultiIndex) kolonner. Du vil se Length på øverste niveau, med min og max pænt kategoriseret under den.
Swipe to start coding
Din opgave er at undersøge gennemsnitlige og maksimale forsinkelsestider afhængigt af den lufthavn, hvorfra flyet startede, og derefter den lufthavn, hvor flyet landede. Undersøg også medianlængden af flyveturen. Følg denne algoritme:
Grupper data:
- Anvend
.groupby()-metoden på datasættetdata; - Indsæt kolonnerne
.groupby()og'AirportFrom'i'AirportTo'-metoden; rækkefølgen er vigtig; - Brug
.agg()-metoden til at beregne de aggregerede værdier: gennemsnit og maksimum i kolonnen'Time', samt medianværdien i kolonnen'Length'.
Løsning
Tak for dine kommentarer!
single
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