GroupBy, aggregointi ja pivot-taulukot
Tiivistäkää tietoja groupby-operaatioilla ja pivot-taulukoilla.
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.0Useita 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.
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
- Series- ja DataFrame-rakenteiden perusteet
- Indeksointi, suodatus ja totuusarvomaskit
- GroupBy, aggregointi ja pivot-taulukot
- Yhdistäminen, liittäminen ja tietojen puhdistus