Heim  >  Artikel  >  Backend-Entwicklung  >  Wie forme ich Pandas-Daten mit mehreren Variablen mithilfe der Pivot-Funktion vom Lang- ins Breitformat um?

Wie forme ich Pandas-Daten mit mehreren Variablen mithilfe der Pivot-Funktion vom Lang- ins Breitformat um?

DDD
DDDOriginal
2024-11-02 17:14:02292Durchsuche

How to Reshape Pandas Data from Long to Wide Format with Multiple Variables Using the Pivot Function?

Pandas Long-to-Breit-Umformung mit mehreren Variablen

Das Konvertieren von Daten vom Lang- ins Breitformat in Pandas kann eine Herausforderung sein, insbesondere wenn mehrere Variablen vorhanden sind beteiligt. Diese Frage untersucht eine Methode zum Umformen von Daten mithilfe der Pivot-Funktion.

Die bereitgestellten Originaldaten sind:

  Salesman  Height   product      price
  Knut      6        bat          5
  Knut      6        ball         1
  Knut      6        wand         3
  Steve     5        pen          2

Das gewünschte Breitformat ist:

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

Eins Der von Chris Albon vorgeschlagene Ansatz beinhaltet die Verwendung der Pivot-Funktion wie folgt:

df.pivot(index='Salesman', columns='product', values='price')

Dieser Ansatz erstellt einen mehrstufigen Index, wobei die Spalten „Verkäufer“ und „Produkt“ jeweils die Zeilen- und Spaltenindizes sind. Die Preisspalte wird zu den Werten.

Der resultierende Datenrahmen sieht wie folgt aus:

product      bat  ball  wand
Salesman                 
Knut          5    1     3
Steve         2   NaN   NaN

Um das gewünschte Format zu erhalten, sind zusätzliche Schritte erforderlich, um die Spalten zu stapeln und die Produkt- und Preiswerte zu extrahieren separate Spalten. Dies kann mit den Funktionen stack und reset_index wie folgt erreicht werden:

df.pivot(index='Salesman', columns='product', values='price') \
   .stack().reset_index() \
   .rename(columns={'level_1':'product', 0:'price'})

Das Endergebnis ist das gewünschte Breitformat.

Das obige ist der detaillierte Inhalt vonWie forme ich Pandas-Daten mit mehreren Variablen mithilfe der Pivot-Funktion vom Lang- ins Breitformat um?. 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