logo

panda's smelten()

Hiervoor wordt de functie Pandas.melt() gebruikt ongedaan maken het DataFrame van een breed formaat naar een lang formaat.

De belangrijkste taak ervan is om een ​​DataFrame in een formaat te masseren waarbij sommige kolommen identificatievariabelen zijn en de overige kolommen worden beschouwd als gemeten variabelen en niet meer naar de rij-as zijn gedraaid. Er blijven slechts twee niet-identificatorkolommen over: variabele en waarde.

Syntaxis

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

Parameters

    kader:Het verwijst naar het DataFrame.id_vars[tupel, lijst of ndarray, optioneel]:Het verwijst naar de kolommen die als identificatievariabelen moeten worden gebruikt.waarde_vars[tupel, lijst of ndarray, optioneel]:Verwijst naar kolommen waarvan de draaiing moet worden opgeheven. Als dit niet is opgegeven, gebruikt u alle kolommen die niet zijn ingesteld als id_vars.var_name[scalair]:Verwijst naar een naam die moet worden gebruikt voor de kolom 'variabele'. Als dit Geen is, wordt frame.columns.name of 'variable' gebruikt.waarde_naam[scalair, standaard 'waarde']:Verwijst naar een naam die moet worden gebruikt voor de kolom 'waarde'.col_level[int of string, optioneel]: Het zal dit niveau gebruiken om te smelten als de kolommen MultiIndex zijn.

Geeft terug

Het retourneert het niet-gedraaide DataFrame als uitvoer.

Voorbeeld

 # 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 

Uitvoer

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

Voorbeeld2

 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') 

Uitvoer

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