Lange Daten mit Pandas in Breitformat umwandeln
Wenn Sie mit Daten in einem langen Format arbeiten, kann es notwendig sein, sie in ein Breitformat umzuwandeln Breitformat zur besseren Analyse und Visualisierung. Eine häufige Herausforderung besteht darin, Daten basierend auf mehreren Variablen umzuformen.
Betrachten Sie den folgenden Datenrahmen:
salesman height product price Knut 6 bat 5 Knut 6 ball 1 Knut 6 wand 3 Steve 5 pen 2
Das Ziel besteht darin, diese Daten in ein breites Format umzuwandeln:
salesman height product_1 price_1 product_2 price_2 product_3 price_3 Knut 6 bat 5 ball 1 wand 3 Steve 5 pen 2 NA NA NA NA
Während Schmelzen/Stapeln/Entstapeln häufig zum Umformen von Daten verwendet wird, sind sie möglicherweise nicht für dieses spezielle Szenario geeignet.
Eine Lösung für dieses Problem kann mit dem folgenden Code gefunden werden:
<code class="python">import pandas as pd # Create sample data raw_data = { 'salesman': ['Knut', 'Knut', 'Knut', 'Steve'], 'height': [6, 6, 6, 5], 'product': ['bat', 'ball', 'wand', 'pen'], 'price': [5, 1, 3, 2] } df = pd.DataFrame(raw_data) # Reshape data df_wide = df.pivot_table(index=['salesman', 'height'], columns='product', values='price') # Reset index to get it in the desired format df_wide = df_wide.reset_index(level=[0, 1]) # Rename columns new_columns = ['salesman', 'height'] + [f'product_{i}' for i in range(1, df_wide.shape[1] - 1)] + [f'price_{i}' for i in range(1, df_wide.shape[1] - 1)] df_wide.columns = new_columns # Handle missing values df_wide.fillna("NA", inplace=True)</code>
Der resultierende Datenrahmen df_wide wird im gewünschten Breitformat vorliegen.
Das obige ist der detaillierte Inhalt vonWie kann ich mit Pandas lange Daten in ein breites Format mit mehreren Variablen umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!