logo

elolvad a pandák ()

A Pandas.melt() függvényt szokták unpivot a DataFrame széles formátumról hosszú formátumra.

Fő feladata, hogy egy DataFrame-et olyan formátumba masszírozzon, ahol egyes oszlopok azonosítóváltozók, a többi oszlop pedig mért változónak minősül, és nem forog a sor tengelyéhez. Csak két nem azonosító oszlopot hagy, a változót és az értéket.

Szintaxis

 pandas.melt(frame, id_vars=None, value_vars=None, var_name=None, value_name='value', col_level=None) 

Paraméterek

    keret:Ez a DataFrame-re utal.id_vars[tuple, lista vagy ndarray, opcionális]:Azokra az oszlopokra vonatkozik, amelyeket azonosítóváltozóként kell használni.value_vars[tuple, lista vagy ndarray, opcionális]:Azokra az oszlopokra vonatkozik, amelyeket fel kell oldani. Ha nincs megadva, használja az összes olyan oszlopot, amely nincs beállítva id_vars-ként.var_name[scalar]:A „változó” oszlophoz használandó névre utal. Ha nincs, akkor a frame.columns.name vagy a 'változót' használja.érték_név[skalár, alapértelmezett 'érték']:Az „érték” oszlophoz használandó névre utal.col_level[int vagy karakterlánc, opcionális]: Ezt a szintet használja az olvasztáshoz, ha az oszlopok MultiIndex.

Visszatér

Kimenetként az elforgatatlan DataFrame-et adja vissza.

Példa

 # importing pandas as pd import pandas as pd # creating a dataframe info = pd.DataFrame({'Name': {0: 'Parker', 1: 'Smith', 2: 'John'}, 'Language': {0: 'Python', 1: 'Java', 2: 'C++'}, 'Age': {0: 22, 1: 30, 2: 26}}) # Name is id_vars and Course is value_vars pd.melt(info, id_vars =['Name'], value_vars =['Language']) info 

Kimenet

 Name Language Age 0 Parker Python 22 1 Smith Java 30 2 John C++ 26 

Példa2

 import pandas as pd info = pd.DataFrame({'A': {0: 'p', 1: 'q', 2: 'r'}, 'B': {0: 40, 1: 55, 2: 25}, 'C': {0: 56, 1: 62, 2: 42}}) pd.melt(info, id_vars=['A'], value_vars=['C']) pd.melt(info, id_vars=['A'], value_vars=['B', 'C']) pd.melt(info, id_vars=['A'], value_vars=['C'], var_name='myVarname', value_name='myValname') 

Kimenet

 A myVarname myValname 0 p C 56 1 q C 62 2 r C 42