Pandas: so formen sie den dataframe von breit nach lang um


Sie können die folgende grundlegende Syntax verwenden, um einen Pandas-DataFrame von einem Breitformat in ein Langformat zu konvertieren:

 df = pd. melt (df, id_vars=' col1 ', value_vars=[' col2 ', ' col3 ', ...])

In diesem Szenario ist col1 die Spalte, die wir als Bezeichner verwenden, und col2 , col3 usw. sind die Spalten, deren Drehpunkt wir rückgängig machen.

Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.

Beispiel: Den Pandas DataFrame von breit auf lang umformen

Angenommen, wir haben den folgenden Pandas-DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D'],
                   ' points ': [88, 91, 99, 94],
                   ' assists ': [12, 17, 24, 28],
                   ' rebounds ': [22, 28, 30, 31]})

#view DataFrame
df

	team points assists rebounds
0 A 88 12 22
1 B 91 17 28
2 C 99 24 30
3 D 94 28 31

Wir können die folgende Syntax verwenden, um diesen DataFrame von einem Breitformat in ein Langformat umzuwandeln:

 #reshape DataFrame from wide format to long format
df = pd. melt (df, id_vars=' team ', value_vars=[' points ', ' assists ', ' rebounds '])

#view updated DataFrame
df

	team variable value
0 A points 88
1 B points 91
2 C dots 9 9
3 D dots 94
4 A assists 12
5 B assists 17
6 C assists 24
7 D assists 28
8 A rebounds 22
9 B rebounds 28
10 C rebounds 30
11 D rebounds 31

Der DataFrame liegt jetzt im Langformat vor.

Wir haben die Spalte „Team“ als Identifikationsspalte verwendet und die Spalten „Punkte“, „Assists“ und „Rebounds“ entpivotiert.

Beachten Sie, dass wir auch die Argumente var_name und value_name verwenden können, um die Spaltennamen im neuen langen DataFrame anzugeben:

 #reshape DataFrame from wide format to long format
df = pd. melt (df, id_vars=' team ', value_vars=[' points ', ' assists ', ' rebounds '],
             var_name=' metric ', value_name=' amount ')

#view updated DataFrame
df

	team metric amount
0 A points 88
1 B points 91
2 C points 99
3 D dots 94
4 A assists 12
5 B assists 17
6 C assists 24
7 D assists 28
8 A rebounds 22
9 B rebounds 28
10 C rebounds 30
11 D rebounds 31

Hinweis : Die vollständige Dokumentation der Pandas- Melt() -Funktion finden Sie hier .

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

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert