
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.
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, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.