So entpivotieren sie einen pandas dataframe (mit beispiel)
In Pandas können Sie die Funktion „melt()“ verwenden, um die Pivotierung eines DataFrame aufzuheben und ihn von einem Breitformat in ein Langformat zu konvertieren.
Diese Funktion verwendet die folgende grundlegende Syntax:
df_unpivot = pd. melt (df, id_vars=' col1 ', value_vars=[' col2 ', ' col3 ', ...])
Gold:
- id_vars : Die Spalten, die als Bezeichner verwendet werden sollen
- value_vars : Spalten, deren Pivotierung aufgehoben werden soll
Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.
Beispiel: Aufheben der Pivotierung eines Pandas DataFrame
Angenommen, wir haben den folgenden Pandas-DataFrame:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E'], ' points ': [18, 22, 19, 14, 14], ' assists ': [5, 7, 7, 9, 12], ' rebounds ': [11, 8, 10, 6, 6]}) #view DataFrame print (df) team points assists rebounds 0 A 18 5 11 1 B 22 7 8 2 C 19 7 10 3 D 14 9 6 4 E 14 12 6
Wir können die folgende Syntax verwenden, um den DataFrame zu „unpivotieren“:
#unpivot DataFrame from wide format to long format
df_unpivot = pd. melt (df, id_vars=' team ', value_vars=[' points ', ' assists ', ' rebounds '])
#view updated DataFrame
print (df_unpivot)
team variable value
0 A points 18
1 B points 22
2 C points 19
3 D dots 14
4 E points 14
5 A assists 5
6 B assists 7
7 C assists 7
8 D assists 9
9 E assists 12
10 A rebounds 11
11 B rebounds 8
12 C rebounds 10
13 D rebounds 6
14 E rebounds 6
Wir haben die Teamspalte als Identifikationsspalte verwendet und uns dafür entschieden, die Punkte-, Assists- und Rebounds -Spalten nicht zu rotieren.
Das Ergebnis ist ein DataFrame im Langformat.
Beachten Sie, dass wir auch die Argumente var_name und value_name verwenden können, um die Spaltennamen im nicht gedrehten DataFrame anzugeben:
#unpivot DataFrame from wide format to long format
df_unpivot = pd. melt (df, id_vars=' team ', value_vars=[' points ', ' assists ', ' rebounds '],
var_name=' metric ', value_name=' amount ')
#view updated DataFrame
print (df_unpivot)
team metric amount
0 A points 18
1 B points 22
2 C points 19
3 D dots 14
4 E points 14
5 A assists 5
6 B assists 7
7 C assists 7
8 D assists 9
9 E assists 12
10 A rebounds 11
11 B rebounds 8
12 C rebounds 10
13 D rebounds 6
14 E rebounds 6
Beachten Sie, dass die neuen Spalten jetzt die Bezeichnungen „Metrik “ und „Betrag“ tragen.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere gängige Vorgänge in Python ausführen:
So fügen Sie Zeilen zu einem Pandas DataFrame hinzu
So fügen Sie Spalten zu einem Pandas DataFrame hinzu
So zählen Sie das Vorkommen bestimmter Werte in Pandas DataFrame