single
Edistynyt Ryhmittely
Pyyhkäise näyttääksesi valikon
Laajennetaan tietämystämme .groupby()-metodista. Kuten muistat, voimme käyttää myös .agg()-metodia. Tämän funktion tärkein etu on sen joustavuus: sen avulla voidaan soveltaa useita, erilaisia aggregaatioita useisiin sarakkeisiin samanaikaisesti, jolloin saadaan selkeä yhteenvetotaulukko.
Katso alla olevaa esimerkkiä. Ryhmittelimme lennot 'Airline'-sarakkeen mukaan. Sitten käytimme .agg()-metodia laskeaksemme lentojen kokonaismäärän (käyttäen 'Delay'-sarakeetta) ja samanaikaisesti etsimme lyhimmän ja pisimmän lentomatkan keston (käyttäen 'Length'-sarakeetta). Kätevää, eikö totta?
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))
Selitys:
.agg({'Delay': 'count', 'Length': ['min', 'max']})
.agg(): Lyhenne sanasta "aggregate". Tämä metodi tiivistää ryhmitellyn datan yhteenvetotilastoiksi antamiesi sääntöjen perusteella.{}: Käytämme Python-sanakirjaa yhdistääksemme tietyt sarakkeet tiettyihin operaatioihin. Avaimet ovat sarakkeiden nimet, joihin haluat kohdistaa toiminnot, ja arvot ovat funktioita, joita haluat soveltaa.'Delay': 'count': Käskee pandas-kirjastoa laskemaan'Delay'-sarakkeen arvojen määrän jokaisessa ryhmässä. Huomaa, että annamme merkkijonoaliaksen'count'sen sijaan, että kirjoittaisimmecount(). Pandas tunnistaa nämä yleiset tilastolliset merkkijononimet.'Length': ['min', 'max']: Jos haluat soveltaa useampaa kuin yhtä funktiota yhteen sarakkeeseen, funktioiden nimet tulee laittaa listaan[]. Tässä lasketaan sekä pienin että suurin arvo'Length'-sarakkeelle.
Koska sovelsimme useita funktioita, tuloksena syntyvä DataFrame luo automaattisesti hierarkkiset (MultiIndex) sarakkeet. Näet Length-sarakkeen ylimmällä tasolla, ja sen alla min ja max siististi luokiteltuna.
Pyyhkäise aloittaaksesi koodauksen
Tehtävänäsi on tarkastella tarkemmin keskimääräisiä ja suurimpia viiveaikoja riippuen siitä, miltä lentokentältä lento lähti ja mille lentokentälle lento päättyi. Tarkastele myös lennon mediaanikestoa. Noudata seuraavaa algoritmia:
Ryhmittele data:
- Käytä
.groupby()-metodia tietojoukkoondata; .groupby()-metodin sisällä aseta sarakkeet'AirportFrom'ja'AirportTo'; järjestyksellä on merkitystä;- Käytä
.agg()-metodia laskeaksesi aggregoidut arvot: sarakkeen'Time'keskiarvo ja maksimiarvo sekä sarakkeen'Length'mediaaniarvo.
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme