logo

Pandas schmelzen()

Die Funktion Pandas.melt() dient dazu ausdrehen den DataFrame von einem Breitformat in ein Langformat.

Seine Hauptaufgabe besteht darin, einen DataFrame in ein Format zu überführen, in dem einige Spalten Bezeichnervariablen sind und die übrigen Spalten als gemessene Variablen betrachtet werden und nicht auf der Zeilenachse ausgerichtet sind. Es bleiben nur zwei Nicht-Bezeichnerspalten übrig, Variable und Wert.

Syntax

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

Parameter

    rahmen:Es bezieht sich auf den DataFrame.id_vars[Tupel, Liste oder Ndarray, optional]:Es bezieht sich auf die Spalten, die als Bezeichnervariablen verwendet werden sollen.value_vars[Tupel, Liste oder Ndarray, optional]:Bezieht sich auf Spalten, deren Pivotierung aufgehoben werden soll. Wenn es nicht angegeben ist, verwenden Sie alle Spalten, die nicht als id_vars festgelegt sind.var_name[Skalar]:Bezieht sich auf einen Namen, der für die Spalte „Variable“ verwendet werden soll. Wenn es „None“ ist, wird „frame.columns.name“ oder „Variable“ verwendet.Wertname[Skalar, Standardwert]:Bezieht sich auf einen Namen, der für die Spalte „Wert“ verwendet werden soll.col_level[int oder string, optional]: Diese Ebene wird zum Schmelzen verwendet, wenn die Spalten MultiIndex sind.

Kehrt zurück

Es gibt den nichtpivotierten DataFrame als Ausgabe zurück.

Beispiel

 # 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 

Ausgabe

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

Beispiel2

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

Ausgabe

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