
W pracy z danymi w Pythonie często napotykamy na sytuacje, w których musimy zmienić układ naszej tabeli. Czasem konieczne jest przekształcenie szerokiego zestawu danych w dłuższy format, co ułatwia analizę i wizualizację. Właśnie do tego służy funkcja pandas.melt()
. Przyjrzyjmy się, jak działa pandas melt w języku Python i zobaczmy przykład zastosowania.
Co to jest pandas.melt()
?
Funkcja pandas.melt()
pozwala zamienić szeroki format danych (czyli taki, w którym mamy wiele kolumn reprezentujących różne kategorie) w format „długi”, gdzie mamy jedną kolumnę z wartościami i drugą z odpowiadającymi im zmiennymi.
Przykładowy zbiór danych
Załóżmy, że mamy DataFrame w Pandas o następującej strukturze:
import pandas as pd
df = pd.DataFrame({
'Imię': ['Ala', 'Bartek', 'Cezary'],
'Matematyka': [90, 85, 78],
'Fizyka': [88, 76, 90],
'Chemia': [75, 95, 85]
})
print(df)
Tabela wygląda tak:
Imię | Matematyka | Fizyka | Chemia |
---|---|---|---|
Ala | 90 | 88 | 75 |
Bartek | 85 | 76 | 95 |
Cezary | 78 | 90 | 85 |
Stosowanie pandas.melt()
Aby zamienić tę tabelę na format długi, możemy użyć pandas.melt()
w następujący sposób:
df_melted = pd.melt(df, id_vars=['Imię'], var_name='Przedmiot', value_name='Wynik')
print(df_melted)
Po zastosowaniu pandas.melt()
, tabela przyjmie następującą postać:
Imię | Przedmiot | Wynik |
---|---|---|
Ala | Matematyka | 90 |
Ala | Fizyka | 88 |
Ala | Chemia | 75 |
Bartek | Matematyka | 85 |
Bartek | Fizyka | 76 |
Bartek | Chemia | 95 |
Cezary | Matematyka | 78 |
Cezary | Fizyka | 90 |
Cezary | Chemia | 85 |
Składnia pandas.melt()
Podstawowa składnia wygląda następująco:
pandas.melt(frame, id_vars=None, value_vars=None, var_name=None, value_name='value')
Oto, co oznaczają poszczególne parametry:
frame
– DataFrame wejściowy.id_vars
– kolumny, które mają pozostać bez zmian (w naszym przypadku „Imię”).value_vars
– kolumny, które mają zostać „stopione” w jedną kolumnę (domyślnie wszystkie opróczid_vars
).var_name
– nazwa nowej kolumny zawierającej dawną nazwę kolumny (np. „Przedmiot”).value_name
– nazwa nowej kolumny zawierającej wartości (np. „Wynik”).
Zastosowanie różnych parametrów
Filtracja wybranych kolumn
Jeśli chcemy uwzględnić tylko wybrane przedmioty, możemy użyć parametru value_vars
:
df_melted = pd.melt(df, id_vars=['Imię'], value_vars=['Matematyka', 'Chemia'],
var_name='Przedmiot', value_name='Wynik')
print(df_melted)
Teraz DataFrame zawiera tylko oceny z matematyki i chemii.
Zmiana nazw kolumn
Jeśli chcemy dostosować nazwy kolumn w wyniku, możemy określić var_name
i value_name
:
df_melted = pd.melt(df, id_vars=['Imię'], var_name='Kategoria', value_name='Ocena')
To sprawi, że kolumny zamiast „Przedmiot” i „Wynik” będą miały nazwy „Kategoria” i „Ocena”.
Kiedy warto używać pandas.melt()
?
Funkcja pandas.melt()
jest niezwykle przydatna w wielu sytuacjach:
- Podczas przygotowywania danych do wykresów w bibliotekach takich jak Matplotlib czy Seaborn.
- Podczas przekształcania szerokich tabel dla łatwiejszej analizy.
- Gdy dane muszą być dostosowane do formatu używanego w bazach danych.
- W przygotowaniu danych do modelowania ML, gdzie często format „długi” jest bardziej efektywny.
Podsumowanie
Funkcja pandas.melt()
to potężne narzędzie do transformacji danych w języku Python. Pozwala na zamianę szerokich tabel na format długi, co ułatwia analizę, wizualizację i dalsze przetwarzanie. Kluczowe parametry, takie jak id_vars
, value_vars
, var_name
i value_name
, dają pełną kontrolę nad wynikiem. Mam nadzieję, że teraz wiesz, jak działa pandas melt w języku Python i wiesz, jak używać tej funkcji w swoich projektach.
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.