Aby ułatwić analizę danych w tabeli, możemy przekształcić dane w formę bardziej przyjazną komputerowi, używając Pand w Pythonie. Pandas.melt() jest jedną z funkcji umożliwiających wykonanie tego zadania. Pandas.melt() cofa ramkę DataFrame z formatu szerokiego do formatu długiego.
mnożenie macierzy w c
Pandy topnieją() Funkcja jest przydatna do wmasowania ramki DataFrame do formatu, w którym co najmniej jedna kolumna jest zmiennym identyfikatorem, podczas gdy wszystkie inne kolumny, uważane za zmienne mierzone, nie są obracane względem osi wiersza, pozostawiając tylko dwie kolumny nieidentyfikatorowe, zmienną i wartość.
Składnia funkcji Pandas.melt() w Pythonie
Składnia: pandas.melt(frame, id_vars=Brak, value_vars=Brak,
var_name=Brak, value_name=’wartość’, col_level=Brak)
Parametry:
- rama : Ramka danych
- id_vars[krotka, lista lub ndarray, opcjonalnie] : Kolumny do użycia jako zmienne identyfikatora.
- value_vars[krotka, lista lub ndarray, opcjonalnie]: Kolumny do cofnięcia obrotu. Jeśli nie określono, używa wszystkich kolumn, które nie są ustawione jako id_vars.
- nazwa_zmiennej[skalar]: Nazwa, która będzie używana w kolumnie „zmienna”. Jeśli Brak, używa nazwy ramki.kolumn.lub „zmiennej”.
- nazwa_wartości[skalar, domyślna „wartość”]: Nazwa, która będzie używana w kolumnie „wartość”.
- col_level[int lub string, opcjonalnie]: Jeśli kolumny są MultiIndexem, użyj tego poziomu do stopienia.
Tworzenie przykładowej ramki danych
Tutaj stworzyliśmy przykładową ramkę DataFrame, której użyjemy w tym artykule.
Python3
# importing pandas as pd> import> pandas as pd> # creating a dataframe> df>=> pd.DataFrame({>'Name'>: {>0>:>'John'>,>1>:>'Bob'>,>2>:>'Shiela'>},> >'Course'>: {>0>:>'Masters'>,>1>:>'Graduate'>,>2>:>'Graduate'>},> >'Age'>: {>0>:>27>,>1>:>23>,>2>:>21>}})> df> |
>
>

Melt () wykonaj w przykładzie Pandy
Poniżej znajduje się przykład wykorzystania funkcji Melt() Pandy na różne sposoby Pandy :
Przykład 1: Pandy Melt() Przykład
W tym przykładziepd.melt>Funkcja służy do cofnięcia obrotu kolumny „Kurs”, zachowując „Nazwę” jako zmienną identyfikacyjną. Powstała DataFrame ma trzy kolumny: „Nazwa”, „zmienna” (zawierająca nazwę kolumny „Kurs”) i „wartość” (zawierająca odpowiednie wartości z kolumny „Kurs”).
Python3
# Name is id_vars and Course is value_vars> pd.melt(df, id_vars>=>[>'Name'>], value_vars>=>[>'Course'>])> |
>
>
Wyjście:
Name variable value 0 John Course Masters 1 Bob Course Graduate 2 Shiela Course Graduate>
Przykład 2: Użycie id_vars i value_vars do metody Melt() ramki danych Pandas
W tym przykładziepd.melt>Funkcja służy do cofania obrotu kolumn „Kurs” i „Wiek”, używając „Nazwy” jako zmiennej identyfikacyjnej.
Python3
# multiple unpivot columns> pd.melt(df, id_vars>=>[>'Name'>], value_vars>=>[>'Course'>,>'Age'>])> |
>
>
Wyjście:
linux miętowy cynamon vs mate
Name variable value 0 John Course Masters 1 Bob Course Graduate 2 Shiela Course Graduate 3 John Age 27 4 Bob Age 23 5 Shiela Age 21>
Przykład 3: Używanie nazw_zmiennych i nazw_wartości do metody Melt() ramki danych Pandas
W tym przykładziepd.melt>funkcja jest używana w przypadku niestandardowych nazw kolumn. Kolumna „Kurs” nie jest przestawiana, ale zachowuje „Nazwę” jako identyfikator. Powstała ramka DataFrame zawiera kolumny „Name”, „ChangedVarname” (w przypadku połączonej nazwy kolumny ustawionej na „Course”) i „ChangedValname” (zawierające odpowiednie wartości z kolumny „Course”).
Python3
dyskretna negacja matematyki
# Names of ‘variable’ and ‘value’ columns can be customized> pd.melt(df, id_vars>=>[>'Name'>], value_vars>=>[>'Course'>],> >var_name>=>'ChangedVarname'>, value_name>=>'ChangedValname'>)> |
>
>
Wyjście:
Name ChangedVarname ChangedValname 0 John Course Masters 1 Bob Course Graduate 2 Shiela Course Graduate>
Przykład 4: Używanie ignorowania indeksu z funkcją Pandas.melt().
W tym przykładziepd.melt>Funkcja jest stosowana do cofania obrotu kolumn „Kurs” i „Wiek”, używając „Nazwy” jako zmiennej identyfikacyjnej. Oryginalny indeks jest ignorowany ze względu naignore_index=True>parametr.
Python3
# multiple unpivot columns with ignore_index> result>=> pd.melt(df, id_vars>=>[>'Name'>], value_vars>=>[>'Course'>,>'Age'>], ignore_index>=>True>)> print>(result)> |
>
>
Wyjście:
Name variable value 0 John Course Masters 1 Bob Course Graduate 2 Shiela Course Graduate 3 John Age 27 4 Bob Age 23 5 Shiela Age 21>