Pivot-taulukot ja ristiintaulukointi
pd.pivot_table(), pd.crosstab() ja datan muotoilu yhteenvetotilastoja varten.
Pivot-taulukot ja ristiintaulukointi on ilmainen Oppikaa tekoälyä Pythonilla-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Oppikaa tekoälyä Pythonilla-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Oppikaa tekoälyä Pythonilla-kurssilla on yhteensä 4 oppituntia.
Muotoilu oivallusten löytämiseksi
Pivot-taulukko muotoilee pitkän datan ruudukoksi ja kokoaa yhden arvon kahden kategorisen akselin yli. Se on ohjelmoitava versio tutusta taulukkolaskennan pivot-taulukosta.
import pandas as pd
df = pd.DataFrame({
"region": ["E", "E", "W", "W", "E"],
"product": ["A", "B", "A", "B", "A"],
"sales": [10, 20, 30, 40, 50],
})Perusmuotoinen pivot_table
pd.pivot_table saa argumenteiksi values-arvot (koottavat luvut), index-arvon (rivit) ja columns-arvon (sarakkeet). Oletusarvoisesti se laskee päällekkäisten solujen keskiarvon.
pt = pd.pivot_table(df, values="sales", index="region", columns="product")
print(pt)
# product A B
# region
# E 30.0 20.0
# W 30.0 40.0aggfunc-funktion valitseminen
Asettakaa aggfunc, jolla määritätte, miten päällekkäiset arvot yhdistetään: summa, keskiarvo, lukumäärä ja niin edelleen. Käyttäkää listaa, jos haluatte useita funktioita kerralla.
pt = pd.pivot_table(df, values="sales", index="region",
columns="product", aggfunc="sum")
print(pt)Useita aggfunc-funktioita
Antakaa funktioiden lista, jos haluatte laskea useita yhteenvetoja rinnakkain.
pt = pd.pivot_table(df, values="sales", index="region",
aggfunc=["sum", "mean", "count"])
print(pt)Puuttuvien solujen täyttäminen
Yhdistelmät, joista ei ole tietoja, saavat arvon NaN. fill_value korvaa nämä arvot, usein nollalla, jotta raporteista tulee selkeitä.
pt = pd.pivot_table(df, values="sales", index="region",
columns="product", aggfunc="sum", fill_value=0)
print(pt)Margins (summat)
Asettamalla margins=True voitte lisätä rivien ja sarakkeiden loppusummat, joiden oletusnimenä on "All".
pt = pd.pivot_table(df, values="sales", index="region",
columns="product", aggfunc="sum",
fill_value=0, margins=True)
print(pt)Useita indeksitasoja
Antakaa index- tai columns-argumentille listoja hierarkkisia erittelyjä varten, esimerkiksi alueen ja sen jälkeen tuotteen mukaan.
df["channel"] = ["on", "off", "on", "off", "on"]
pt = pd.pivot_table(df, values="sales",
index=["region", "channel"], aggfunc="sum")
print(pt)Ristiintaulukointi crosstabilla
pd.crosstab on erikoistunut pivot-toiminto, joka LASKEE kahden kategorisen muuttujan yhdistelmien lukumäärät. Arvosaraketta ei tarvita.
ct = pd.crosstab(df["region"], df["product"])
print(ct)
# product A B
# region
# E 2 1
# W 1 1crosstab-tuloksen normalisointi
normalize-argumentti muuttaa lukumäärät osuuksiksi: "index" normalisoi riveittäin, "columns" sarakkeittain ja True koko summan perusteella.
ct = pd.crosstab(df["region"], df["product"], normalize="index")
print(ct) # each row sums to 1.0crosstab arvojen kanssa
Antamalla values- ja aggfunc-argumentit voitte käskeä crosstabia kokoamaan mittarin lukumäärien laskemisen sijaan, jolloin sen ja pivot_tablen välinen ero hämärtyy.
ct = pd.crosstab(df["region"], df["product"],
values=df["sales"], aggfunc="sum")
print(ct)pivot_table vs crosstab
Käyttäkää pivot_table-toimintoa numeerisen arvon yhteenvetoon ja crosstab-toimintoa kategorioiden yhdistelmien lukumäärien laskemiseen. crosstabilla myös osuuksiksi normalisointi onnistuu yhdellä rivillä.
Pikakoe
Testatkaa datan uudelleenmuotoilun tuntemustanne.
Kertaus
Uudelleenmuotoilun työkalut:
pd.pivot_table(values, index, columns, aggfunc)kokoaa mittarinfill_valuetyhjille soluille jamargins=Truesummille- Listat indeksille ja sarakkeille hierarkiaa varten
pd.crosstablaskee yhdistelmien lukumäärät janormalizetuottaa osuudet
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
- 53
- Oppitunnit
- 225
Usein kysytyt kysymykset
Onko oppitunti ”Pivot-taulukot ja ristiintaulukointi” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Oppikaa tekoälyä Pythonilla-oppimispolun 3 oppituntia, myös oppitunnin “Pivot-taulukot ja ristiintaulukointi”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppikaa tekoälyä Pythonilla-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Pivot-taulukot ja ristiintaulukointi”?
pd.pivot_table(), pd.crosstab() ja datan muotoilu yhteenvetotilastoja varten. Harjoittelet Oppikaa tekoälyä Pythonilla-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Oppikaa tekoälyä Pythonilla-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Oppikaa tekoälyä Pythonilla-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”Pivot-taulukot ja ristiintaulukointi”-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ä Oppikaa tekoälyä Pythonilla-oppitunnilla?
Kyllä. Jokainen Oppikaa tekoälyä Pythonilla-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
- GroupBy ja aggregointi
- Pivot-taulukot ja ristiintaulukointi
- Edistynyt yhdistäminen ja liittäminen
- Aikasarjat Pandasissa