Python | Pandas.melt()

Python | Pandas.melt()

Aby sme uľahčili analýzu údajov v tabuľke, môžeme pomocou Pandas v Pythone pretvoriť údaje do počítačovo vhodnejšej formy. Pandas.melt() je jednou z funkcií, ktoré to umožňujú. Pandas.melt() odoberá dátový rámec zo širokého formátu na dlhý formát.

Pandy sa topia () Funkcia je užitočná na vmasírovanie dátového rámca do formátu, v ktorom jeden alebo viac stĺpcov sú premenné identifikátora, zatiaľ čo všetky ostatné stĺpce, považované za merané premenné, nie sú otočené na os riadkov, ponechávajúc len dva stĺpce bez identifikátora, premennú a hodnotu.

Syntax funkcie Python Pandas.melt().

Syntax: pandas.melt(snímka, id_vars=Žiadne, value_vars=Žiadne,

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

Parametre:

  • rám: DataFrame
  • id_vars[n-tice, zoznam alebo ndarray, voliteľné] : Stĺpce, ktoré sa majú použiť ako premenné identifikátora.
  • value_vars[n-tice, zoznam alebo ndarray, voliteľné]: Stĺpce na odklopenie. Ak nie je zadaný, použije všetky stĺpce, ktoré nie sú nastavené ako id_vars.
  • var_name[skalar]: Názov, ktorý sa má použiť pre stĺpec „premenná“. Ak Žiadne, použije sa názov frame.columns.name alebo „premenná“.
  • názov_hodnoty[skalár, predvolená ‚hodnota‘]: Názov, ktorý sa má použiť pre stĺpec „hodnota“.
  • col_level[int alebo reťazec, voliteľné]: Ak sú stĺpce MultiIndex, použite túto úroveň na roztavenie.

Vytvorenie vzorového dátového rámca

Tu sme vytvorili vzorový DataFrame, ktorý použijeme v tomto článku.

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>

roztaviť () urobiť v Pandas Príklad

Nižšie je uvedený príklad toho, ako môžeme použiť funkciu Pandas melt() rôznymi spôsobmi pandy :

Príklad 1: Pandy topia () Príklad

V tomto príklade pd.melt> funkcia sa používa na odklopenie stĺpca „Kurz“, pričom sa ako premenná identifikátora ponecháva „Názov“. Výsledný DataFrame má tri stĺpce: „Názov“, „premenná“ (obsahuje názov stĺpca „Kurz“) a „hodnota“ (obsahuje zodpovedajúce hodnoty zo stĺpca „Kurz“).

Python3




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

Výkon:

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

Príklad 2: Použitie id_vars a value_vars na melt() Pandas DataFrame

V tomto príklade pd.melt> funkcia sa používa na odklopenie stĺpcov „Kurz“ a „Vek“ pri použití „Názov“ ako premennej identifikátora.

Python3




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

Výkon:

 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 

Príklad 3: Použitie var_name a value_name na melt() Pandas DataFrame

V tomto príklade pd.melt> funkcia sa používa s prispôsobenými názvami stĺpcov. Stĺpec „Kurz“ sa neotočí, pričom sa ako identifikátor zachová „Názov“. Výsledný DataFrame má stĺpce ‚Name‘, ‚ChangedVarname‘ (pre názov roztaveného stĺpca nastavený na ‚Course‘) a ‚ChangedValname‘ (obsahuje zodpovedajúce hodnoty zo stĺpca ‚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'> )>

Výkon:

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

Príklad 4: Použitie ignore_index s funkciou Pandas.melt().

V tomto príklade pd.melt> Funkcia sa použije na odklopenie stĺpcov „Kurz“ a „Vek“ pri použití „Názov“ ako premennej identifikátora. Pôvodný index je ignorovaný z dôvodu ignore_index=True> parameter.

Python3




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

Výkon:

 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