Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Monimutkainen Ryhmittely | Datan Yhdistäminen
Edistyneet Tekniikat Pandas-Kirjastossa

bookMonimutkainen Ryhmittely

Joskus sisäänrakennetut pandas-funktiot, kuten .mean() tai .min(), eivät riitä ryhmittelyssä.

Tarkastele saraketta 'Length'; tässä on lennon kesto minuutteina. Kuvittele, että haluamme laskea maksimiajan tunneissa niille riveille, joilla on sama arvo sarakkeessa 'Flight' ja sitten sarakkeessa 'Airline'. Tämän saavuttamiseksi voimme laskea sarakkeen 'Length' maksimiarvon jokaiselle ryhmäavaimelle ja jakaa sen sitten 60:llä. Katso esimerkki ja selitys alla.

1234
import 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', 'Airline', 'Length']].groupby(['Flight', 'Airline']).apply(lambda x: x['Length'].max()/60) print(data_flights.head(10))
copy

Selitys:

Teimme aiemman esimerkin hieman monimutkaisemmaksi, mutta tietojen ryhmittelyssä kaikki pysyy samana; siirrytään nyt käyttämään .apply()-metodia.

.apply(lambda x: x['Length'].max()/60)
  • .apply() – mahdollistaa tietyn funktion soveltamisen tarvittuihin sarakkeisiin;
  • lambda-funktiossa x on argumentti ja x['Length'].max()/60 on lauseke. Funktio siis hakee suurimman arvon jokaiselle ryhmäavaimelle ja jakaa kootun arvon 60:llä.
Tehtävä

Swipe to start coding

Tehtävänäsi on ryhmittää data lähtölentokentän ja viikonpäivän mukaan. Laske ryhmien sarakkeiden 'Length' ja 'Time' summan pienin arvo selvittääksesi, kuinka kauan viivästynyt lento voi kestää. Noudata seuraavaa algoritmia:

  • Tallenna sarakkeet 'AirportFrom', 'Airline', 'Time' ja 'Length' muuttujaan columns.
  • Poimi columns data-objektista.
  • Käytä ryhmittelyssä .groupby()-metodia sarakkeiden 'AirportFrom' ja 'Airline' mukaan tässä järjestyksessä.
  • Laske kunkin ryhmän 'Length' ja 'Time' summa ja valitse sen pienin arvo.

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 3
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

close

Awesome!

Completion rate improved to 3.03

bookMonimutkainen Ryhmittely

Pyyhkäise näyttääksesi valikon

Joskus sisäänrakennetut pandas-funktiot, kuten .mean() tai .min(), eivät riitä ryhmittelyssä.

Tarkastele saraketta 'Length'; tässä on lennon kesto minuutteina. Kuvittele, että haluamme laskea maksimiajan tunneissa niille riveille, joilla on sama arvo sarakkeessa 'Flight' ja sitten sarakkeessa 'Airline'. Tämän saavuttamiseksi voimme laskea sarakkeen 'Length' maksimiarvon jokaiselle ryhmäavaimelle ja jakaa sen sitten 60:llä. Katso esimerkki ja selitys alla.

1234
import 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', 'Airline', 'Length']].groupby(['Flight', 'Airline']).apply(lambda x: x['Length'].max()/60) print(data_flights.head(10))
copy

Selitys:

Teimme aiemman esimerkin hieman monimutkaisemmaksi, mutta tietojen ryhmittelyssä kaikki pysyy samana; siirrytään nyt käyttämään .apply()-metodia.

.apply(lambda x: x['Length'].max()/60)
  • .apply() – mahdollistaa tietyn funktion soveltamisen tarvittuihin sarakkeisiin;
  • lambda-funktiossa x on argumentti ja x['Length'].max()/60 on lauseke. Funktio siis hakee suurimman arvon jokaiselle ryhmäavaimelle ja jakaa kootun arvon 60:llä.
Tehtävä

Swipe to start coding

Tehtävänäsi on ryhmittää data lähtölentokentän ja viikonpäivän mukaan. Laske ryhmien sarakkeiden 'Length' ja 'Time' summan pienin arvo selvittääksesi, kuinka kauan viivästynyt lento voi kestää. Noudata seuraavaa algoritmia:

  • Tallenna sarakkeet 'AirportFrom', 'Airline', 'Time' ja 'Length' muuttujaan columns.
  • Poimi columns data-objektista.
  • Käytä ryhmittelyssä .groupby()-metodia sarakkeiden 'AirportFrom' ja 'Airline' mukaan tässä järjestyksessä.
  • Laske kunkin ryhmän 'Length' ja 'Time' summa ja valitse sen pienin arvo.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 3
single

single

some-alt