Python 使用一列作为新级别,将列更改为多索引

Python 使用一列作为新级别,将列更改为多索引,python,pandas,Python,Pandas,我有一个数据帧: df = pd.DataFrame.from_dict({'Close': {1: 14.03, 3: 14.02, 0: 79.88, 2: 80.31}, 'High': {1: 14.3, 3: 14.33, 0: 80.22, 2: 81.19}, 'Low': {1: 14.03, 3: 13.99, 0: 79.39, 2: 80.25}, 'Open': {1: 14.18, 3: 14.25, 0: 79.79, 2: 80.97}, 'Volume':

我有一个数据帧:

df = pd.DataFrame.from_dict({'Close': {1: 14.03, 3: 14.02, 0: 79.88, 2: 80.31},
 'High': {1: 14.3, 3: 14.33, 0: 80.22, 2: 81.19},
 'Low': {1: 14.03, 3: 13.99, 0: 79.39, 2: 80.25},
 'Open': {1: 14.18, 3: 14.25, 0: 79.79, 2: 80.97},
 'Volume': {1: 1656782.0, 3: 2249159.0, 0: 1416232.0, 2: 1622784.0},
 'Value': {1: 23244651.46, 3: 31533209.18, 0: 113128612.16, 2: 130325783.04},
 'Code': {1: 'A2M', 3: 'A2M', 0: 'CBA', 2: 'CBA'}})
df.index = [0,1,0,1]

    Close   High    Low     Open    Volume      Value           Code
0   14.03   14.30   14.03   14.18   1656782.0   2.324465e+07    A2M
1   14.02   14.33   13.99   14.25   2249159.0   3.153321e+07    A2M
0   79.88   80.22   79.39   79.79   1416232.0   1.131286e+08    CBA
1   80.31   81.19   80.25   80.97   1622784.0   1.303258e+08    CBA
如何将列更改为多索引,将“代码”列的值作为第一级,将当前列的值作为第二级

        CBA                                                         A2M
        Close   High    Low     Open    Volume      Value           Close   High    Low     Open    Volume      Value                                           
0       79.88   80.22   79.39   79.79   1416232.0   1.131286e+08    14.02   14.33   13.99   14.25   2249159.0   31533209.18
1       80.31   81.19   80.25   80.97   1622784.0   1.303258e+08    14.03   14.30   14.03   14.18   1656782.0   23244651.46
谢谢。

与一起使用,然后与:


我们还可以使用您的
索引
来使用:

df = df.set_index('Code', append=True).unstack().swaplevel(1, 0, axis=1).sort_index(axis=1)
print (df)
Code    A2M                                                 CBA                \
      Close   High    Low   Open        Value     Volume  Close   High    Low   
0     14.03  14.30  14.03  14.18  23244651.46  1656782.0  79.88  80.22  79.39   
1     14.02  14.33  13.99  14.25  31533209.18  2249159.0  80.31  81.19  80.25   

Code                                  
       Open         Value     Volume  
0     79.79  1.131286e+08  1416232.0  
1     80.97  1.303258e+08  1622784.0  
df.groupby(['Code',df.index]).first().unstack('Code').swaplevel(axis=1).sort_index(axis=1)

Code    A2M                                                 CBA                \
      Close   High    Low   Open        Value     Volume  Close   High    Low   
0     14.03  14.30  14.03  14.18  23244651.46  1656782.0  79.88  80.22  79.39   
1     14.02  14.33  13.99  14.25  31533209.18  2249159.0  80.31  81.19  80.25   

Code                                  
       Open         Value     Volume  
0     79.79  1.131286e+08  1416232.0  
1     80.97  1.303258e+08  1622784.0