Kad būtų lengviau analizuoti duomenis lentelėje, galime pakeisti duomenis į kompiuteriui patogesnę formą naudodami Pandas programoje Python. Pandas.melt() yra viena iš funkcijų, leidžiančių tai padaryti. Pandas.melt() paverčia duomenų rėmelį iš plataus formato į ilgąjį formatą.
sql ddl komandas
Pandos tirpsta () Funkcija yra naudinga įmasažuojant DataFrame į formatą, kuriame vienas ar keli stulpeliai yra identifikatoriaus kintamieji, o visi kiti stulpeliai, laikomi išmatuotais kintamaisiais, yra nepasukami į eilutės ašį, paliekant tik du neidentifikuojančius stulpelius – kintamąjį ir reikšmę.
Python Pandas.melt() Funkcijos sintaksė
Sintaksė: pandas.melt(frame, id_vars=Nėra, value_vars=Nėra,
var_name=Nėra, value_name='value', col_level=Nėra)
Parametrai:
- rėmelis: DataFrame
- id_vars [tuple, sąrašas arba ndarray, pasirinktinai]: Stulpelis (-iai), naudojamas (-i) kaip identifikatoriaus kintamieji.
- value_vars [tuple, sąrašas arba ndarray, neprivaloma]: Stulpelis (-iai), kurį norite atšaukti. Jei nenurodyta, naudojami visi stulpeliai, kurie nėra nustatyti kaip id_vars.
- var_name[skaliarinis]: Stulpelio „kintamasis“ pavadinimas. Jei Nėra, naudojamas frame.columns.name arba „kintamasis“.
- vertės_pavadinimas [skaliarinis, numatytasis 'vertė']: Stulpelio „vertė“ pavadinimas.
- col_level[int arba eilutė, neprivaloma]: Jei stulpeliai yra MultiIndex, naudokite šį lygį, kad ištirptumėte.
Pavyzdinio duomenų rėmelio kūrimas
Čia sukūrėme „DataFrame“ pavyzdį, kurį naudosime šiame straipsnyje.
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> |
>
>

išlydyti () padaryti pandų pavyzdyje
Žemiau pateikiamas pavyzdys, kaip galime skirtingais būdais naudoti funkciją Pandas melt() Pandos :
1 pavyzdys: Pandos melt() Pavyzdys
Šiame pavyzdyjepd.melt>Funkcija naudojama stulpeliui „Kursas“ atjungti, išlaikant „Vardas“ kaip identifikatoriaus kintamąjį. Gautame „DataFrame“ yra trys stulpeliai: „Pavadinimas“, „kintamasis“ (su stulpelio pavadinimu „Kursas“) ir „vertė“ (su atitinkamomis stulpelio „Kursas“ reikšmėmis).
Python3
# Name is id_vars and Course is value_vars> pd.melt(df, id_vars>=>[>'Name'>], value_vars>=>[>'Course'>])> |
>
>
Išvestis:
Name variable value 0 John Course Masters 1 Bob Course Graduate 2 Shiela Course Graduate>
2 pavyzdys: id_vars ir value_vars naudojimas Pandas DataFrame melt()
Šiame pavyzdyjepd.melt>Funkcija naudojama norint išjungti stulpelius „Kursas“ ir „Amžius“, naudojant „Vardas“ kaip identifikatoriaus kintamąjį.
Python3
# multiple unpivot columns> pd.melt(df, id_vars>=>[>'Name'>], value_vars>=>[>'Course'>,>'Age'>])> |
Instagram privalumai asmeniniam naudojimui
>
>
Išvestis:
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>
3 pavyzdys: Pandas DataFrame melt() naudojimas var_name ir value_name
Šiame pavyzdyjepd.melt>funkcija naudojama su pritaikytais stulpelių pavadinimais. Stulpelis „Kursas“ yra atsuktas, tačiau išsaugomas „Vardas“ kaip identifikatorius. Gautame „DataFrame“ yra stulpeliai „Name“, „ChangedVarname“ (išlydyto stulpelio pavadinimas nustatytas į „Course“) ir „ChangedValname“ (turi atitinkamos vertės iš stulpelio „Kursas“).
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'>)> |
>
>
Išvestis:
Name ChangedVarname ChangedValname 0 John Course Masters 1 Bob Course Graduate 2 Shiela Course Graduate>
4 pavyzdys: ignore_index naudojimas su Pandas.melt() funkcija
Šiame pavyzdyjepd.melt>Funkcija taikoma norint atjungti stulpelius „Kursas“ ir „Amžius“, naudojant „Vardas“ kaip identifikatoriaus kintamąjį. Pradinis indeksas ignoruojamas dėlignore_index=True>parametras.
Python3
konvertuoti loginį į eilutę
# multiple unpivot columns with ignore_index> result>=> pd.melt(df, id_vars>=>[>'Name'>], value_vars>=>[>'Course'>,>'Age'>], ignore_index>=>True>)> print>(result)> |
>
>
Išvestis:
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>