Pivotieren, auch Transponieren genannt, ist ein häufiger Vorgang bei der Datentransformation, bei dem Zeilen und Spalten vertauscht werden. Dies kann für Aufgaben wie das Umformen von Daten in ein geeigneteres Format oder das Erstellen von Berichten, die Daten über mehrere Dimensionen hinweg zusammenfassen, nützlich sein. In Python bietet Pandas mehrere Methoden zum Pivotieren eines DataFrames, jede mit ihren eigenen Stärken und Einschränkungen.
Für das grundlegende Pivotieren können Sie die folgenden Methoden verwenden:
pandas.pivot_table: Diese Methode bietet eine flexible Schnittstelle zum Pivotieren von Daten durch Angabe der zu verwendenden Spalten Zeilen, Spalten und Werte. Unterstützt verschiedene Aggregationsfunktionen wie Mittelwert, Summe, Anzahl usw.
pandas.DataFrame.groupby pandas.unstack: Gruppieren Sie die Daten mit Groupby nach den gewünschten Spalten und entstapeln Sie dann den resultierenden MultiIndex mit Entstapeln, um den geschwenkten DataFrame zu erstellen.
Für komplexeres Pivotieren Für Operationen können Sie die folgenden Methoden verwenden:
pandas.DataFrame.set_index pandas.unstack: Ähnlich wie Groupby, aber effizienter, wenn Sie auf einem eindeutigen Satz von Zeilen und Spalten schwenken.
pandas.DataFrame.pivot: Eine prägnantere Version von Pivot_table, jedoch mit eingeschränkter Funktionalität Funktionalität.
pandas.crossstab: Nützlich zum Erstellen einer Kontingenztabelle (Kreuztabelle), einer Art Pivot, der Daten über zwei kategoriale Variablen hinweg aggregiert.
pandas.factorize numpy.bincount: Eine fortgeschrittenere Technik, die kann für bestimmte Vorgänge schneller sein. Verwendet Faktorisierung, um kategoriale Werte in eindeutige Ganzzahlen umzuwandeln, und verwendet dann Bincount, um die Vorkommen zu zählen.
pandas.get_dummies pandas.DataFrame.dot: Eine kreative Möglichkeit, Kreuztabellen mithilfe von Dummy-Variablen durchzuführen .
Hier sind einige Beispiele für deren Verwendung Methoden:
# Import pandas import pandas as pd # Create a sample DataFrame df = pd.DataFrame({ "key": ["a", "b", "c", "a", "b"], "row": [1, 2, 3, 4, 5], "col": ["col1", "col2", "col3", "col1", "col2"], "val": [10, 20, 30, 40, 50] }) # Pivot using pivot_table pivoted_df = pd.pivot_table( df, index="row", columns="col", values="val", aggfunc='mean', fill_value=0 ) # Pivot using groupby and unstack pivoted_df = df.groupby(['row', 'col'])['val'].mean().unstack(fill_value=0)
Um den Multi-Index des geschwenkten DataFrames abzuflachen, können Sie je nach Spaltentyp unterschiedliche Ansätze verwenden:
If Spalten sind Zeichenfolgen:
pivoted_df.columns = pivoted_df.columns.map('|'.join)
Wenn Spalten sind Tupel:
pivoted_df.columns = pivoted_df.columns.map('{0[0]}|{0[1]}'.format)
Das obige ist der detaillierte Inhalt vonWie kann ich DataFrames in Pandas effizient Pivotieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!