Jak działa pandas melt w języku Python? Przykład zastosowania

Jak działa pandas melt w języku Python? Przykład zastosowania
„`html

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ócz id_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:

  1. Podczas przygotowywania danych do wykresów w bibliotekach takich jak Matplotlib czy Seaborn.
  2. Podczas przekształcania szerokich tabel dla łatwiejszej analizy.
  3. Gdy dane muszą być dostosowane do formatu używanego w bazach danych.
  4. 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.

„` Inny ciekawy artykuł: Jak działa pandas pivot_table w języku Python? Przykład zastosowania
KajoDataSpace