Baza wiedzy / Python
Jak działa pandas pivot_table w języku Python? Przykład zastosowania

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.
