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.0Wybó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 1Normalizacja 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.0crosstab 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_valuesłuży do uzupełniania pustych komórek, amargins=Truedo dodawania sum- Przekazuj listy do index/columns, aby utworzyć hierarchię
pd.crosstabzlicza kombinacje, anormalizezwraca 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
- GroupBy i agregacja
- Tabele przestawne i tabele krzyżowe
- Zaawansowane scalanie i łączenie
- Szeregi czasowe w Pandas