Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich mit Pandas lange Daten in ein breites Format mit mehreren Variablen umwandeln?

Wie kann ich mit Pandas lange Daten in ein breites Format mit mehreren Variablen umwandeln?

Barbara Streisand
Barbara StreisandOriginal
2024-10-30 07:38:27563Durchsuche

How can I reshape long data into a wide format with multiple variables using Pandas?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn