2016-12-15 3 views
1

Ich versuche, eine Multi-Index-Pandas-Datenrahmen (letztlich eine CSV-Datei) aus einer vorhandenen CSV-Datei zu erstellen. Ich habe es schwer, über Datenrahmen zu iterieren, weil es mehr als 2 Dimensionen enthält. Wie erreiche ich das? Die ursprüngliche CSV-Datei sieht wie folgt aus:Erstellen Sie einen Multiindex-Pandas-Datenrahmen aus einer Multiindex-CSV-Datei

"Products" "Technologies" Region1 Region2 Region3 
Prod1  Tech1   16  0  12 
Prod2  Tech2   0  12  22 
Prod3  Tech3   22  0  36 

Und ich freue mich auf eine CSV-Datei zu erstellen, die wie folgt aussieht:

"Technologies" "Regions" Prod1 Prod2 Prod3 
Tech1   Region1  16  0  0 
Tech1   Region2  0  0  0 
Tech1   Region3  12  0  0 
Tech2   Region1  0  0  0 
Tech2   Region2  0  12  0 
Tech2   Region3  0  22  0 
Tech3   Region1  0  0  22 
Tech3   Region2  0  0  0 
Tech3   Region3  0  0  36 

Antwort

0

stack und unstack sind hilfreiche Funktionen für die Datenrahmen Umformung, der ehemaligen Transformation der Spaltenindex Index und letztere macht das Gegenteil Reihe, auch check this tutorial:

# transform regions to a separate column 
(df.set_index(["Products", "Technologies"]).stack() 

# rename the Region column and remove the name for Products column as it will be unstacked 
    .rename_axis(("", "Technologies", "Regions")) 

# unstack the product column to headers and reset the index to be columns 
    .unstack(level=0, fill_value=0).reset_index()) 

enter image description here

+0

Danke, Psidom! –

Verwandte Themen