Pandas melt() Funktion
-
Syntax von Funktion
pandas.melt()
-
Beispiel-Codes:
pandas.melt()
-
Beispiel-Codes:
pandas.melt()
Mit einer einzelnen Spalte alsid_vars
-
Beispiel-Codes:
pandas.melt()
mit Überspringen von Spalten -
Beispiel-Codes:
pandas.melt()
mit mehreren Spalten
Die Funktion pandas.melt()
formt oder transformiert einen bestehenden DataFrame
um. Sie ändert die Ausrichtung des DataFrame
von einem breiten Format in ein langes Format.
Syntax von Funktion pandas.melt()
pandas.melt(dataframe, id_vars, value_vars, var_name, value_name, col_level)
Parameter
Dataframe |
obligatorisch | Es ist der DataFrame , den wir in das lange Format wechseln wollen. |
id_vars |
optional | Es kann ein Tupel , eine Liste oder ein N-dimensionales Array sein. Es ist die Spalte, die für Identifizierungsvariablen verwendet wird. Sie können mehr als eine Bezeichnerspalte auswählen. |
value_vars |
optional | Es kann ein Tupel , eine Liste oder ein N-dimensionales Array sein. Standardmäßig sind die Spalten, die nicht als Bezeichnungsvariablen angegeben sind, Wertvariablen. Sie können diese auch auswählen. |
var_name |
optional | Es ist eine Variable vom Typ scalar . Es ist der Name der Bezeichnerspalte. Standardmäßig ist sie variabel . |
value_name |
optional | Es ist eine Variable vom Typ scalar . Es ist der Name der Nicht-Bezeichner-Spalte. Standardmäßig ist sie vom Typ value . |
col_level |
optional | Es ist eine Ganzzahl oder eine Zeichenkette. Im Falle von Multi-Index-Spalten können wir diesen Parameter verwenden, um unseren DataFrame zu transformieren. |
Zurück
Es gibt einen transformierten DataFrame
zurück, der eine oder mehrere Bezeichnerspalten und nur zwei Nicht-Bezeichnerspalten mit dem Namen Variable und Wert enthält.
Beispiel-Codes: pandas.melt()
Zuerst werden wir diese Funktion prüfen, indem wir nur den obligatorischen Parameter DataFrame
übergeben.
import pandas as pd
dataframe=pd.DataFrame({'Attendance': {0: 60, 1: 100, 2: 80,3: 78,4: 95},
'Name': {0: 'Olivia', 1: 'John', 2: 'Laura',3: 'Ben',4: 'Kevin'},
'Obtained Marks': {0: '90%', 1: '75%', 2: '82%',3: '64%',4: '45%'}})
dataframe1 = pd.melt(dataframe)
print(dataframe1)
Unser DataFrame
sieht folgendermaßen aus:
Attendance Name Obtained Marks
0 60 Olivia 90%
1 100 John 75%
2 80 Laura 82%
3 78 Ben 64%
4 95 Kevin 45%
Ausgabe:
variable value
0 Attendance 60
1 Attendance 100
2 Attendance 80
3 Attendance 78
4 Attendance 95
5 Name Olivia
6 Name John
7 Name Laura
8 Name Ben
9 Name Kevin
10 Obtained Marks 90%
11 Obtained Marks 75%
12 Obtained Marks 82%
13 Obtained Marks 64%
14 Obtained Marks 45%
Hier sehen Sie, dass es in der Ausgabe keine Bezeichnerspalte gibt. Wir haben zwei Nicht-Bezeichner-Spalten. Jede Spalte des ursprünglichen DataFrame
ist nun eine Zeile in der Ausgabe DataFrame
.
Jetzt werden wir die optionalen Parameter übergeben und die Ergebnisse überprüfen.
Beispiel-Codes: pandas.melt()
Mit einer einzelnen Spalte als id_vars
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: "90%", 1: "75%", 2: "82%", 3: "64%", 4: "45%"},
}
)
dataframe1 = pd.melt(dataframe, id_vars=["Name"])
print(dataframe1)
Ausgabe:
Name variable value
0 Olivia Attendance 60
1 John Attendance 100
2 Laura Attendance 80
3 Ben Attendance 78
4 Kevin Attendance 95
5 Olivia Obtained Marks 90%
6 John Obtained Marks 75%
7 Laura Obtained Marks 82%
8 Ben Obtained Marks 64%
9 Kevin Obtained Marks 45%
Die Bezeichnerspalte wird als Name
angegeben, und die Spalten variable
und value
stehen daneben mit den aus dem ursprünglichen DataFrame extrahierten Werten.
Wir könnten auch Namen von var_name
und value_name
zuweisen, um die voreingestellten variable
und value
zu ersetzen.
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: "90%", 1: "75%", 2: "82%", 3: "64%", 4: "45%"},
}
)
dataframe1 = pd.melt(
dataframe, id_vars=["Name"], var_name="Performance", value_name="Success"
)
print(dataframe1)
Ausgabe:
Name Performance Success
0 Olivia Attendance 60
1 John Attendance 100
2 Laura Attendance 80
3 Ben Attendance 78
4 Kevin Attendance 95
5 Olivia Obtained Marks 90%
6 John Obtained Marks 75%
7 Laura Obtained Marks 82%
8 Ben Obtained Marks 64%
9 Kevin Obtained Marks 45%
Beispiel-Codes: pandas.melt()
mit Überspringen von Spalten
Wenn wir nur die Anwesenheit prüfen wollen, müssen wir den value_vars
angeben.
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: "90%", 1: "75%", 2: "82%", 3: "64%", 4: "45%"},
}
)
dataframe1 = pd.melt(
dataframe,
id_vars=["Name"],
value_vars="Attendance",
var_name="Performance",
value_name="Success",
)
print(dataframe1)
Ausgabe:
Name Performance Success
0 Olivia Attendance 60
1 John Attendance 100
2 Laura Attendance 80
3 Ben Attendance 78
4 Kevin Attendance 95
Es werden nur die Informationen der Spalte Attendance
im ursprünglichen DataFrame angezeigt.
Beispiel-Codes: pandas.melt()
mit mehreren Spalten
Wir fügen dem Demo-DataFrame eine zusätzliche Spalte ID
hinzu.
import pandas as pd
dataframe = pd.DataFrame(
{
"Attendance": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95},
"ID": {0: 1, 1: 2, 2: 3, 3: 4, 4: 5},
"Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
"Obtained Marks": {0: "90%", 1: "75%", 2: "82%", 3: "64%", 4: "45%"},
}
)
dataframe1 = pd.melt(dataframe, id_vars=["ID", "Name"])
print(dataframe1)
Ausgabe:
ID Name variable value
0 1 Olivia Attendance 60
1 2 John Attendance 100
2 3 Laura Attendance 80
3 4 Ben Attendance 78
4 5 Kevin Attendance 95
5 1 Olivia Obtained Marks 90%
6 2 John Obtained Marks 75%
7 3 Laura Obtained Marks 82%
8 4 Ben Obtained Marks 64%
9 5 Kevin Obtained Marks 45%
Beide Spalten ID
und Name
werden als Bezeichnerspalten zugewiesen.