Oppikaa tekoälyä Pythonilla · Oppitunti

Pivot-taulukot ja ristiintaulukointi

pd.pivot_table(), pd.crosstab() ja datan muotoilu yhteenvetotilastoja varten.

Oppitunti 2/413 vaihetta

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.0

aggfunc-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  1

crosstab-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.0

crosstab 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 mittarin
  • fill_value tyhjille soluille ja margins=True summille
  • Listat indeksille ja sarakkeille hierarkiaa varten
  • pd.crosstab laskee yhdistelmien lukumäärät ja normalize tuottaa osuudet
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
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

  1. GroupBy ja aggregointi
  2. Pivot-taulukot ja ristiintaulukointi
  3. Edistynyt yhdistäminen ja liittäminen
  4. Aikasarjat Pandasissa
← Takaisin: Oppikaa tekoälyä Pythonilla