2016-12-15 121 views
1

我想从现有的csv文件创建一个多索引熊猫数据框(最终是一个csv文件)。由于它包含2个以上的维度,因此我很难在数据框上进行迭代。我该如何做到这一点?原来的CSV文件如下所示:从多索引csv文件创建一个多重索引熊猫数据框

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

而且我希望创造一个CSV文件,该文件是这样的:

"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 

回答

0

stackunstack是重塑数据帧比较实用的功能,前者变换的列索引到行索引和后者则正好相反,也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

谢谢Psidom! –