
Pracując z językiem Python i biblioteką pandas, często muszę przekształcać dane w różnych formatach, aby uzyskać przejrzyste podsumowania. Jednym z najpotężniejszych narzędzi w tej bibliotece jest funkcja pivot_table(), która pozwala na agregację i przekształcanie danych w czytelne tabele przestawne. W tym artykule pokażę, jak działa pandas pivot_table() oraz podam przykład jego zastosowania.
Co to jest pandas pivot_table()?
Funkcja pivot_table() w pandas umożliwia tworzenie tabel przestawnych, które pozwalają na grupowanie, agregowanie i reorganizowanie danych. Jest szczególnie przydatna, gdy chcę przekształcić dane w bardziej przejrzystą formę i zobaczyć wyniki w różnych przekrojach.
Podstawowa składnia pivot_table()
Składnia funkcji wygląda następująco:
pd.pivot_table(data, values, index, columns, aggfunc)
Gdzie:
data– DataFrame, na którym operuję.values– kolumna (lub kolumny), które chcę agregować.index– kolumna (lub kolumny), które będą wierszami tabeli przestawnej.columns– kolumna, która stanie się kolumną podziału.aggfunc– funkcja agregująca (np.mean,sum,count).
Przykładowe dane
Załóżmy, że mam poniższy DataFrame zawierający informacje o sprzedaży:
import pandas as pd
data = {
'Kategoria': ['Elektronika', 'Elektronika', 'Dom', 'Dom', 'Dom', 'Elektronika'],
'Produkt': ['Laptop', 'Smartfon', 'Odkurzacz', 'Pralka', 'Lodówka', 'Laptop'],
'Sprzedane_sztuki': [5, 8, 10, 6, 7, 3],
'Cena': [4000, 2500, 600, 1500, 2000, 4100]
}
df = pd.DataFrame(data)
print(df)
Co daje nam następującą tabelę:
| Kategoria | Produkt | Sprzedane_sztuki | Cena |
|---|---|---|---|
| Elektronika | Laptop | 5 | 4000 |
| Elektronika | Smartfon | 8 | 2500 |
| Dom | Odkurzacz | 10 | 600 |
| Dom | Pralka | 6 | 1500 |
| Dom | Lodówka | 7 | 2000 |
| Elektronika | Laptop | 3 | 4100 |
Tworzenie tabeli przestawnej
Teraz użyję pivot_table(), aby zobaczyć średnią cenę produktów w każdej kategorii:
pivot = pd.pivot_table(df, values="Cena", index="Kategoria", aggfunc="mean")
print(pivot)
Wynikowy DataFrame wygląda tak:
| Kategoria | Cena (średnia) |
|---|---|
| Dom | 1366.67 |
| Elektronika | 3525.00 |
Dodanie podziału na kategorie
Mogę dodać jeszcze jedną warstwę dla podziału na konkretne produkty:
pivot = pd.pivot_table(df, values="Sprzedane_sztuki", index="Kategoria", columns="Produkt", aggfunc="sum", fill_value=0)
print(pivot)
Co daje następujący wynik:
| Kategoria | Laptop | Lodówka | Odkurzacz | Pralka | Smartfon |
|---|---|---|---|---|---|
| Dom | 0 | 7 | 10 | 6 | 0 |
| Elektronika | 8 | 0 | 0 | 0 | 8 |
Najważniejsze zalety pivot_table()
Funkcja pivot_table() wyróżnia się kilkoma kluczowymi cechami:
- Pozwala na agregację wartości dla określonych grup danych.
- Obsługuje wiele funkcji agregujących jednocześnie.
- Umożliwia podział danych na różne kategorie.
- Automatycznie obsługuje wartości brakujące (można je zastąpić
fill_value).
Podsumowanie
Teraz wiem, jak działa pandas pivot_table() i jak można go używać do analizy danych. To potężne narzędzie, które pozwala w szybki sposób tworzyć czytelne podsumowania na podstawie dużych zbiorów informacji. Jeśli pracuję z danymi w Pythonie, znajomość tej funkcji jest absolutnie kluczowa.
Inny ciekawy artykuł:
Jak działa pandas join w języku Python? Przykład zastosowania
Opanuj analizę danych w Pythonie z moim kursem!
Opanujesz podstawy programowania w Pythonie, w tym typy danych, zmienne, listy, słowniki, funkcje oraz obsługę błędów. Nauczysz się korzystać z biblioteki pandas do zaawansowanej analizy danych i pracy z różnymi rodzajami danych. Zrozumiesz proces analizy, eksploracji (EDA) i wizualizacji. Tworzenie własnych funkcji przygotuje Cię do rozmów kwalifikacyjnych i rozwiązywania rzeczywistych problemów biznesowych.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, PowerBI, Tableau i Pythona z certyfikatami!
🟨 Ekskluzywana ale pomagająca sobie społeczność.
🟩 Ponad 75 godzin materiałów video.
🟨 Spotkania LIVE co miesiąc.
🟩 Mój osobisty mentoring.

