Pandas Unstack: klar erklärt
Published on
Pandas ist eine leistungsstarke Datenmanipulationsbibliothek in Python, die flexible und effiziente Datenstrukturen zur Verfügung stellt. Eine der nützlichsten Funktionen von Pandas ist die Möglichkeit, Daten auf verschiedene Arten umzustrukturieren, um Ihren Analysebedürfnissen gerecht zu werden. Dieser Artikel konzentriert sich auf die unstack()
-Funktion, eine Methode, die oft verwendet wird, aber nicht immer vollständig verstanden wird.
Die unstack()
-Funktion in Pandas wird zum Neugestalten eines Datenrahmens verwendet. Sie gehört zu einer größeren Gruppe von Methoden, die zum Pivoting von Datenrahmen zwischen langen und breiten Formaten verwendet werden. Das Verständnis, wie man unstack()
effektiv verwendet, kann Ihre Fähigkeiten zur Datenmanipulation in Pandas erheblich verbessern.
Möchten Sie schnell Datenauswertungen aus Python Pandas Dataframe ohne Code erstellen?
PyGWalker ist eine Python-Bibliothek für die explorative Datenanalyse mit Visualisierung. Mit PyGWalker (opens in a new tab) können Sie Ihren Jupyter Notebook Datenanalyse- und Datenvisualisierungsworkflow vereinfachen, indem Sie Ihren pandas DataFrame (und polars DataFrame) in eine Tableau-ähnliche Benutzeroberfläche für visuelle Exploration verwandeln.
Was macht unstack() in Pandas?
Die unstack()
-Funktion in Pandas wird verwendet, um einen Datenrahmen umzustrukturieren. Es handelt sich um eine Methode, die einen DataFrame von einem langen (oder gestapelten) Format in ein breites Format "pivotiert". Sie verschiebt im Wesentlichen Daten von Zeilen in Spalten und bietet eine neue Ansicht Ihrer Daten.
Betrachten Sie zum Beispiel einen DataFrame mit mehrstufigen Indizes. Die unstack()
-Funktion kann Daten von einer inneren Ebene des Zeilenindexes in die Spaltenüberschriften verschieben und so eine Pivot-Tabelle erstellen. Dies kann besonders nützlich sein, wenn Sie mit hierarchischen Indizes arbeiten, da es Ihnen ermöglicht, Ihre Daten in einer Weise neu anzuordnen, die für bestimmte Arten von Analysen besser geeignet sein kann.
Wie unstacken Sie Daten in Pandas?
Das Unstacken von Daten in Pandas ist einfach, sobald Sie das Konzept verstanden haben. Die unstack()
-Funktion wird auf ein DataFrame-Objekt aufgerufen und nimmt einen optionalen Parameter entgegen: das Niveau, das "unstackt" oder pivotiert werden soll.
Wenn kein Niveau angegeben ist, unstackt die unstack()
-Funktion das letzte Niveau des Index des DataFrames. Wenn Sie ein anderes Niveau unstacken möchten, können Sie es entweder durch seine Indexnummer oder seinen Namen angeben.
Hier ist ein grundlegendes Beispiel:
import pandas as pd
## Erstellen Sie einen mehrstufigen DataFrame
index = pd.MultiIndex.from_tuples([(i, j) for i in ['A', 'B', 'C'] for j in ['x', 'y', 'z']])
df = pd.DataFrame({'Data': range(9)}, index=index)
## Unstacken Sie den DataFrame
df_unstacked = df.unstack()
print(df_unstacked)
In diesem Beispiel pivotiert die unstack()
-Funktion das letzte Niveau des Index ('x', 'y', 'z') in die Spaltenüberschriften und erstellt so eine Pivot-Tabelle.
Was ist das Level von unstack?
Das Niveau in unstack()
bezieht sich auf das/die Niveau(s) des Index, das/die unstacked oder pivotiert werden soll(en). In einem DataFrame mit einem mehrstufigen Index werden die Ebenen von der äußersten Ebene (0) bis zur innersten Ebene nummeriert.
Bei Aufruf von unstack()
können Sie das Niveau angeben, das Sie unstacken möchten. Wenn kein Niveau angegeben ist, unstackt unstack()
das letzte (oder innerste) Niveau des Index.
Beispielsweise hat ein DataFrame mit einem mehrstufigen Index von ['A', 'B', 'C'] und ['x', 'y', 'z'] das Niveau von 'A', 'B', 'C' als 0 (das äußerste Niveau) und das Niveau von 'x', 'y', 'z' als 1.
Wann sollte man unstack() mit pivot() in Pandas verwenden?
Die unstack()
-Funktion und die pivot()
-Funktion in Pandas werden beide zum Umstrukturieren von Daten verwendet, erfüllen jedoch leicht unterschiedliche Zwecke und werden in verschiedenen Szenarien verwendet.
Die unstack()
-Funktion wird verwendet, wenn Sie einen DataFrame mit einem mehrstufigen Index haben und eine oder mehrere Ebenen aus dem Index in die Spaltenüberschriften verschieben möchten. Dies ist oft nützlich, wenn Sie hierarchische Daten haben und Ihre Daten neu anordnen möchten, um die Analyse zu erleichtern.
Auf der anderen Seite wird die pivot()
-Funktion verwendet, wenn Sie Ihre Daten basierend auf Spaltenwerten umstrukturieren möchten. Sie ermöglicht es Ihnen, Daten von einem langen Format in ein breites Format zu transformieren oder umzustrukturieren. Sie wird oft verwendet, wenn Sie wiederholte Messungen für dieselben Subjekte haben und jedes Subjekt in einer eigenen Zeile mit jeder Messung in einer separaten Spalte haben möchten.
Hier ein Beispiel, wie Sie sowohl unstack()
als auch pivot()
in derselben Analyse verwenden könnten:
import pandas as pd
## Erstellen Sie einen DataFrame
df = pd.DataFrame({
'date': pd.date_range(start='2023-01-01', periods=3),
'country': ['US', 'UK', 'CA'] * 3,
'product': ['A', 'B', 'C'] * 3,
'sales': range(1, 10)
})
## Pivotieren Sie den DataFrame
df_pivot = df.pivot(index='date', columns='country', values='sales')
## Unstacken Sie den DataFrame
df_unstack = df.set_index(['date', 'country']).unstack('country')
print(df_pivot)
print(df_unstack)
In diesem Beispiel verwenden wir zuerst pivot()
, um jedes Land in seiner eigenen Spalte mit Umsatz als Werte zu haben. Dann verwenden wir unstack()
, um dasselbe Ergebnis zu erzielen, aber indem wir die "country"-Ebene vom Index in die Spaltenüberschriften verschieben.
Zusammenfassend hängt die Verwendung von unstack()
oder pivot()
von der Struktur Ihrer Daten und der spezifischen Umstrukturierungsoperation ab, die Sie durchführen möchten. Beide sind leistungsstarke Werkzeuge zur Umstrukturierung von Daten in Pandas, und das Verständnis, wie man sie effektiv verwendet, kann Ihre Fähigkeiten zur Datenanalyse erheblich verbessern.
Schlussfolgerung
Das Beherrschen der Kunst des Unstackings in Pandas kann Ihre Möglichkeiten zur Datenmanipulation erheblich verbessern. Die Funktion "unstack()" ist ein leistungsstolzes Werkzeug, das es Ihnen ermöglicht, Daten von Zeilen in Spalten zu pivotieren und einen neuen Blickwinkel auf Ihre Daten zu bieten. Egal, ob Sie hierarchische Indizes behandeln oder eine Ebene Ihres DataFrames pivotieren möchten, "unstack()" ist eine Funktion, die in jedem Werkzeugkasten eines Datenanalysten vorhanden sein sollte. Mit dem Wissen und den Beispielen, die in diesem Artikel bereitgestellt werden, sind Sie nun bereit, Ihre eigenen Data Frames in Pandas zu unstacken. Viel Spaß beim Unstacken!
Häufig gestellte Fragen (FAQs)
Was macht unstack() in Pandas?
Die Funktion "unstack()" in Pandas wird verwendet, um ein Data Frame neu zu gestalten. Es handelt sich hierbei um eine Methode, die ein Data Frame aus einem langen (oder gestapelten) Format in ein breites Format "pivotiert". Sie verschiebt im Wesentlichen Daten von Zeilen in Spalten und bietet somit eine neue Sicht auf Ihre Daten.
Wie kann man Daten in Pandas unstacken?
Das Unstacken von Daten in Pandas ist einfach, sobald Sie das Konzept verstanden haben. Die Funktion "unstack()" wird auf ein DataFrame-Objekt aufgerufen und nimmt ein optionales Argument entgegen: das Niveau, das "unstacked" oder gepivoted werden soll. Wenn kein Niveau angegeben ist, wird die Funktion "unstack()" das letzte Niveau des DataFrames-Index unstacken. Wenn Sie ein anderes Niveau unstacken möchten, können Sie es entweder anhand seiner Indexnummer oder seines Namens angeben.
Wann sollte man unstack() mit pivot() in Pandas verwenden?
Die Funktion "unstack()" und die Funktion "pivot()" in Pandas werden beide zum Umstrukturieren von Daten verwendet, dienen jedoch leicht unterschiedlichen Zwecken und werden in verschiedenen Szenarien eingesetzt. Die Funktion "unstack()" wird verwendet, wenn Sie ein DataFrame mit einem mehrstufigen Index haben und eine oder mehrere Ebenen vom Index in die Spaltenüberschriften verschieben möchten. Die Funktion "pivot()" wird verwendet, wenn Sie Ihre Daten basierend auf Spaltenwerten umstrukturieren möchten.