Python Academy · Oppitunti

GroupBy, aggregointi ja pivot-taulukot

Tiivistäkää tietoja groupby-operaatioilla ja pivot-taulukoilla.

Oppitunti 3/413 vaihetta

GroupBy, aggregointi ja pivot-taulukot on ilmainen Python Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Python Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Python Academy-kurssilla on yhteensä 4 oppituntia.

groupby-perusteet

df.groupby("col") jakaa DataFramen ryhmiin sarakkeen yksilöllisten arvojen perusteella. Ketjuttakaa mukaan aggregointi tulosten saamiseksi.

import pandas as pd

df = pd.DataFrame({
    "dept":["HR","IT","HR","IT","HR"],
    "salary":[60,80,65,90,70]
})
print(df.groupby("dept")["salary"].mean())
# HR    65.0
# IT    85.0

Useita aggregointifunktioita

Käyttäkää agg()-metodia useiden aggregointifunktioiden suorittamiseen kerralla.

import pandas as pd

df = pd.DataFrame({"dept":["HR","IT","HR","IT"],"sal":[60,80,65,90]})
result = df.groupby("dept")["sal"].agg(["mean","max","count"])
print(result)

Nimetyt aggregoinnit

Antakaa agg()-metodille nimetyt argumentit, jotta voitte nimetä tulossarakkeet erikseen (Pandas 0.25+).

import pandas as pd

df = pd.DataFrame({"dept":["HR","IT","HR","IT"],"sal":[60,80,65,90]})
result = df.groupby("dept").agg(
    avg_sal=("sal","mean"),
    max_sal=("sal","max"),
    count=("sal","size")
)
print(result)

groupby useilla sarakkeilla

Välittäkää sarakkeiden luettelo hierarkkisten ryhmien luomiseksi.

import pandas as pd

df = pd.DataFrame({
    "year":[2023,2023,2024,2024],
    "dept":["HR","IT","HR","IT"],
    "sal":[60,80,65,90]
})
print(df.groupby(["year","dept"])["sal"].sum())

transform()

transform palauttaa alkuperäiseen indeksiin kohdistetun Series-objektin. Tämä on hyödyllistä, kun ryhmätason tilastot halutaan lisätä takaisin alkuperäiseen DataFrameen.

import pandas as pd

df = pd.DataFrame({"dept":["HR","IT","HR","IT"],"sal":[60,80,65,90]})
df["dept_avg"] = df.groupby("dept")["sal"].transform("mean")
print(df)

filter()

filter(func) säilyttää vain ryhmät, joille funktio palauttaa arvon True.

import pandas as pd

df = pd.DataFrame({"dept":["HR","IT","HR"],"sal":[60,80,65]})
# Keep only departments with mean salary > 70:
result = df.groupby("dept").filter(lambda g: g["sal"].mean() > 70)
print(result)

pivot_table

pd.pivot_table luo taulukkolaskentaohjelman tyylisen yhteenvedon mukautetulla aggregoinnilla.

import pandas as pd

df = pd.DataFrame({
    "year":[2023,2023,2024,2024],
    "region":["East","West","East","West"],
    "sales":[100,150,120,200]
})
pt = pd.pivot_table(df, values="sales",
                    index="year", columns="region",
                    aggfunc="sum")
print(pt)

crosstab

pd.crosstab laskee ristiintaulukoinnin. Se on hyödyllinen kategoristen arvojen yhdistelmien laskemiseen.

import pandas as pd

df = pd.DataFrame({"gender":["M","F","M","F","M"],"result":["pass","pass","fail","fail","pass"]})
print(pd.crosstab(df["gender"], df["result"]))

apply()

apply(func) käyttää mukautettua funktiota kunkin ryhmän DataFrameen (axis=0) tai kuhunkin riviin/sarakkeeseen (axis=1).

import pandas as pd

df = pd.DataFrame({"dept":["HR","IT","HR"],"sal":[60,80,65]})

def range_sal(g):
    return g["sal"].max() - g["sal"].min()

print(df.groupby("dept").apply(range_sal))

unstack muotoiluun

Usean tason groupby-operaation jälkeen käyttäkää unstack()-metodia siirtääksenne sisimmän indeksitason sarakkeiksi.

import pandas as pd

df = pd.DataFrame({"year":[2023,2023,2024],"dept":["HR","IT","HR"],"sal":[60,80,65]})
result = df.groupby(["year","dept"])["sal"].mean().unstack()
print(result)

resample aikasarjoille

resample("M") ryhmittelee aikasarja-DataFramen kalenterijaksojen mukaan, mikä mahdollistaa kuukausi- ja vuosikohtaiset aggregoinnit.

import pandas as pd

idx = pd.date_range("2024-01-01", periods=90, freq="D")
df = pd.DataFrame({"sales": range(90)}, index=idx)
monthly = df.resample("ME").sum()
print(monthly)

Pikatarkistus

Mitä groupby().transform("mean") palauttaa?

Kertaus

groupby jakaa tiedot ryhmiin aggregointia varten. Käyttäkää agg()-metodia useille funktioille, transform()-metodia ryhmätilastojen palauttamiseen alkuperäisten rivien yhteyteen, filter()-metodia ryhmien poistamiseen ja pivot_table()/crosstab()-metodeja moniulotteisiin yhteenvetoihin.

Aloita maksutta

Opi Python tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
76
Oppitunnit
320

Usein kysytyt kysymykset

Onko oppitunti ”GroupBy, aggregointi ja pivot-taulukot” ilmainen?

Kyllä – oppitunnin ”GroupBy, aggregointi ja pivot-taulukot” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Python Academy-kurssin, päivitä CoddyKit PROhon. Python Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”GroupBy, aggregointi ja pivot-taulukot”?

Tiivistäkää tietoja groupby-operaatioilla ja pivot-taulukoilla. Harjoittelet Python Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Python Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Python Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”GroupBy, aggregointi ja pivot-taulukot”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Python Academy-oppitunnilla?

Kyllä. Jokainen Python Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Series- ja DataFrame-rakenteiden perusteet
  2. Indeksointi, suodatus ja totuusarvomaskit
  3. GroupBy, aggregointi ja pivot-taulukot
  4. Yhdistäminen, liittäminen ja tietojen puhdistus
← Takaisin: Python Academy