logo

Python | Pandas.melt()

Pentru a ușura analiza datelor dintr-un tabel, putem remodela datele într-o formă mai prietenoasă cu computerul folosind Pandas în Python. Pandas.melt() este una dintre funcțiile pentru a face acest lucru. Pandas.melt() dezactivează un DataFrame de la format larg la format lung.

Jasmine Davis în copilărie

Panda se topește () funcția este utilă pentru a masa un DataFrame într-un format în care una sau mai multe coloane sunt variabile identificatoare, în timp ce toate celelalte coloane, considerate variabile măsurate, sunt nepivotate pe axa rândurilor, lăsând doar două coloane neidentificatoare, variabilă și valoare.

Sintaxa funcției Python Pandas.melt().

Sintaxă: pandas.melt(frame, id_vars=Niciunul, value_vars=Niciunul,



var_name=Niciunul, value_name=’value’, col_level=Niciunul)

Parametri:

  • cadru: DataFrame
  • id_vars[tuplu, listă sau ndarray, opțional]: Coloane de utilizat ca variabile identificatoare.
  • value_vars[tuplu, listă sau ndarray, opțional]: Coloane de dezactivat. Dacă nu este specificat, utilizează toate coloanele care nu sunt setate ca id_vars.
  • var_name[scalar]: Nume de utilizat pentru coloana „variabilă”. Dacă Nici unul, folosește frame.columns.name sau „variabilă”.
  • value_name[scalar, „valoare” implicită]: Nume de utilizat pentru coloana „valoare”.
  • col_level[int sau șir, opțional]: Dacă coloanele sunt un MultiIndex, atunci utilizați acest nivel pentru a se topi.

Crearea unui Sample DataFrame

Aici, am creat un exemplu de DataFrame pe care îl vom folosi în acest articol.

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>

>

>

topiți () face în exemplul panda

Mai jos sunt exemplul cum putem folosi funcția Pandas melt() în moduri diferite în panda :

Exemplul 1: Pandas melt() Exemplu

În acest exemplu,pd.melt>funcția este utilizată pentru a debloca coloana „Curs” păstrând „Nume” ca variabilă de identificare. DataFrame rezultat are trei coloane: „Nume”, „variabilă” (conținând numele coloanei „Curs”) și „valoare” (conținând valorile corespunzătoare din coloana „Curs”).

Python3




# Name is id_vars and Course is value_vars> pd.melt(df, id_vars>=>[>'Name'>], value_vars>=>[>'Course'>])>

saira banu actor

>

>

Ieșire:

 Name variable value 0 John Course Masters 1 Bob Course Graduate 2 Shiela Course Graduate>

Exemplul 2: Utilizarea id_vars și value_vars pentru a topi() a unui Pandas DataFrame

În acest exemplu,pd.melt>funcția este folosită pentru a debloca coloanele „Curs” și „Vârsta” în timp ce se utilizează „Nume” ca variabilă de identificare.

Python3




# multiple unpivot columns> pd.melt(df, id_vars>=>[>'Name'>], value_vars>=>[>'Course'>,>'Age'>])>

>

>

Ieșire:

 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>

Exemplul 3: Utilizarea var_name și value_name pentru a topi() a unui Pandas DataFrame

În acest exemplu,pd.melt>funcția este utilizată cu nume de coloane personalizate. Coloana „Curs” nu este pivotată, păstrând „Nume” ca identificator. DataFrame rezultat are coloanele „Name”, „ChangedVarname” (pentru numele coloanei topite, setat la „Course”) și „ChangedValname” (conținând valorile corespunzătoare din coloana „Course”).

Python3




# Names of ‘variable’ and ‘value’ columns can be customized> pd.melt(df, id_vars>=>[>'Name'>], value_vars>=>[>'Course'>],> >var_name>=>'ChangedVarname'>, value_name>=>'ChangedValname'>)>

>

>

Ieșire:

 Name ChangedVarname ChangedValname 0 John Course Masters 1 Bob Course Graduate 2 Shiela Course Graduate>

Exemplul 4: Utilizarea ignore_index cu funcția Pandas.melt().

În acest exemplu,pd.melt>funcția este aplicată pentru a debloca coloanele „Curs” și „Vârsta” în timp ce se utilizează „Nume” ca variabilă de identificare. Indexul original este ignorat din cauzaignore_index=True>parametru.

Python3




# multiple unpivot columns with ignore_index> result>=> pd.melt(df, id_vars>=>[>'Name'>], value_vars>=>[>'Course'>,>'Age'>], ignore_index>=>True>)> print>(result)>

cum se creează o matrice în java

>

>

Ieșire:

 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>