För att göra analysen av data i en tabell enklare kan vi omforma data till en mer datorvänlig form med Pandas i Python. Pandas.melt() är en av funktionerna för att göra det.. Pandas.melt() kopplar upp en DataFrame från bredformat till långt format.
array lägga till element java
Panda smälter() Funktionen är användbar för att massera in en DataFrame till ett format där en eller flera kolumner är identifierarvariabler, medan alla andra kolumner, betraktade som uppmätta variabler, är opivoterade till radaxeln, vilket bara lämnar två icke-identifierande kolumner, variabel och värde.
Python Pandas.melt() Funktionssyntax
Syntax: pandas.melt(frame, id_vars=Ingen, value_vars=Ingen,
var_name=Inget, value_name=’value’, col_level=Inget)
Parametrar:
- ram: DataFrame
- id_vars[tupel, lista eller ndarray, valfritt] : Kolumn(er) att använda som identifierarvariabler.
- värde_vars[tuppel, lista eller ndarray, valfritt]: Kolumn(er) att ta bort pivot. Om det inte anges används alla kolumner som inte är inställda som id_vars.
- var_namn[skalär]: Namn som ska användas för kolumnen 'variabel'. Om ingen använder den frame.columns.name eller 'variabel'.
- värde_namn[skalär, standard 'värde']: Namn som ska användas för kolumnen 'värde'.
- col_level[int eller sträng, valfritt]: Om kolumner är ett MultiIndex, använd denna nivå för att smälta.
Skapa en exempeldataram
Här har vi skapat ett exempel på DataFrame som vi kommer att använda i den här artikeln.
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> |
>
>

smälta () gör i Pandas exempel
Nedan är exemplet på hur vi kan använda Pandas melt() Function på olika sätt i Pandas :
Exempel 1: Pandas melt() Exempel
I det här exemplet ärpd.melt>funktionen används för att avpivotera kolumnen 'Kurs' medan 'Namn' behålls som identifierarvariabel. Den resulterande DataFrame har tre kolumner: 'Namn', 'variabel' (som innehåller kolumnnamnet 'Kurs') och 'värde' (innehåller motsvarande värden från kolumnen 'Kurs').
Python3
# Name is id_vars and Course is value_vars> pd.melt(df, id_vars>=>[>'Name'>], value_vars>=>[>'Course'>])> |
>
>
Produktion:
Name variable value 0 John Course Masters 1 Bob Course Graduate 2 Shiela Course Graduate>
Exempel 2: Använda id_vars och value_vars för att smälta() av en Pandas DataFrame
I det här exemplet ärpd.melt>funktionen används för att avpivotera kolumnerna 'Kurs' och 'Ålder' medan du använder 'Namn' som identifierarvariabel.
Python3
# multiple unpivot columns> pd.melt(df, id_vars>=>[>'Name'>], value_vars>=>[>'Course'>,>'Age'>])> |
>
>
Produktion:
python lista initialisera
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>
Exempel 3: Använda var_namn och värde_namn för att smälta() av en Pandas DataFrame
I det här exemplet ärpd.melt>funktionen används med anpassade kolumnnamn. Kolumnen 'Kurs' är opivoterad samtidigt som 'Namn' behålls som identifierare. Den resulterande DataFrame har kolumnerna 'Name', 'ChangedVarname' (för det smälta kolumnnamnet, inställt på 'Course') och 'ChangedValname' (innehåller motsvarande värden från 'Course'-kolumnen).
Python3
boolesk i c
# Names of ‘variable’ and ‘value’ columns can be customized> pd.melt(df, id_vars>=>[>'Name'>], value_vars>=>[>'Course'>],> >var_name>=>'ChangedVarname'>, value_name>=>'ChangedValname'>)> |
>
>
Produktion:
Name ChangedVarname ChangedValname 0 John Course Masters 1 Bob Course Graduate 2 Shiela Course Graduate>
Exempel 4: Använda ignore_index med Pandas.melt()-funktionen
I det här exemplet ärpd.melt>funktionen används för att avpivotera kolumnerna 'Kurs' och 'Ålder' medan du använder 'Namn' som identifierarvariabel. Det ursprungliga indexet ignoreras på grund avignore_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)> |
>
>
Produktion:
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>