0Pricing
Learn AI with Python · Lekcja

Tabele przestawne i tabele krzyżowe

pd.pivot_table(), pd.crosstab() i przekształcanie danych na potrzeby statystyk podsumowujących.

Tabele przestawne i tabele krzyżowe to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn AI with Python, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn AI with Python zawiera 4 lekcji w sumie.

Przekształcanie danych w celu uzyskania wniosków

Tabela przestawna przekształca dane w układzie długim w siatkę, podsumowując jedną wartość wzdłuż dwóch osi kategorialnych. To znana z arkuszy kalkulacyjnych tabela przestawna, ale możliwa do programowego tworzenia.

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],
})

Podstawy pivot_table

pd.pivot_table przyjmuje values (liczby do podsumowania), index (wiersze) oraz columns (kolumny). Domyślnie uśrednia wartości w zduplikowanych komórkach.

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

Wybór aggfunc

Ustaw aggfunc, aby określić sposób agregowania duplikatów: suma, średnia, liczność i inne operacje. Użyj listy, aby wykonać kilka z nich jednocześnie.

pt = pd.pivot_table(df, values="sales", index="region",
                    columns="product", aggfunc="sum")
print(pt)

Wiele aggfunc

Przekaż listę funkcji, aby obliczyć kilka podsumowań obok siebie.

pt = pd.pivot_table(df, values="sales", index="region",
                    aggfunc=["sum", "mean", "count"])
print(pt)

Uzupełnianie brakujących komórek

Kombinacje bez danych przyjmują wartość NaN. fill_value zastępuje te wartości, często zerem, aby raporty były czytelne.

pt = pd.pivot_table(df, values="sales", index="region",
                    columns="product", aggfunc="sum", fill_value=0)
print(pt)

Marginesy (sumy)

Ustaw margins=True, aby dodać końcowe sumy wierszy i kolumn, domyślnie oznaczone etykietą „All”.

pt = pd.pivot_table(df, values="sales", index="region",
                    columns="product", aggfunc="sum",
                    fill_value=0, margins=True)
print(pt)

Wiele poziomów indeksu

Przekaż listy do index lub columns, aby utworzyć hierarchiczne zestawienia, na przykład najpierw według regionu, a następnie produktu.

df["channel"] = ["on", "off", "on", "off", "on"]
pt = pd.pivot_table(df, values="sales",
                    index=["region", "channel"], aggfunc="sum")
print(pt)

Tabele krzyżowe za pomocą crosstab

pd.crosstab to wyspecjalizowana tabela przestawna, która ZLICZA częstość kombinacji dwóch zmiennych kategorialnych — nie wymaga kolumny z wartościami.

ct = pd.crosstab(df["region"], df["product"])
print(ct)
# product   A  B
# region
# E         2  1
# W         1  1

Normalizacja crosstab

Argument normalize zamienia liczności na proporcje: "index" oznacza proporcje w wierszu, "columns" — w kolumnie, a True — względem sumy całkowitej.

ct = pd.crosstab(df["region"], df["product"], normalize="index")
print(ct)   # each row sums to 1.0

crosstab z wartościami

Podaj values i aggfunc, aby crosstab podsumowywał miarę zamiast zliczać elementy, przez co zaciera się różnica między nim a pivot_table.

ct = pd.crosstab(df["region"], df["product"],
                 values=df["sales"], aggfunc="sum")
print(ct)

pivot_table a crosstab

Używaj pivot_table, gdy podsumowujesz wartość liczbową, a crosstab, gdy zliczasz częstość kombinacji kategorii. crosstab pozwala również zamienić wyniki na proporcje za pomocą jednego wiersza kodu.

Szybki test

Sprawdź swoją wiedzę o przekształcaniu danych.

Podsumowanie

Narzędzia do przekształcania danych:

  • pd.pivot_table(values, index, columns, aggfunc) podsumowuje miarę
  • fill_value służy do uzupełniania pustych komórek, a margins=True do dodawania sum
  • Przekazuj listy do index/columns, aby utworzyć hierarchię
  • pd.crosstab zlicza kombinacje, a normalize zwraca proporcje

Często zadawane pytania

Czy lekcja „Tabele przestawne i tabele krzyżowe” jest bezpłatna?

Tak — pełny tekst „Tabele przestawne i tabele krzyżowe” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn AI with Python, przejdź na CoddyKit PRO. Kurs Learn AI with Python zawiera 4 lekcji w sumie.

Co nauczysz się w „Tabele przestawne i tabele krzyżowe”?

pd.pivot_table(), pd.crosstab() i przekształcanie danych na potrzeby statystyk podsumowujących. Ćwiczysz Learn AI with Python z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Learn AI with Python?

Nie wymagamy żadnego doświadczenia. Learn AI with Python w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Tabele przestawne i tabele krzyżowe”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Learn AI with Python?

Tak. Każda lekcja Learn AI with Python zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. GroupBy i agregacja
  2. Tabele przestawne i tabele krzyżowe
  3. Zaawansowane scalanie i łączenie
  4. Szeregi czasowe w Pandas
← Powrót do Learn AI with Python