2017-01-07 12 views
0

私は1つのようなパンダマルチインデックスデータフレームを持っているが、以下:以下のようPython Pandas:マルチインデックスデータフレームの場合、行とインデックス付きカラムを交換する方法は?

   col1 col2 
    ind1 ind2    
    A x  3  2 
     y  2  0 
    B x  2  4 
     y  2  3 
    C x  3  1 
     y  0  0 

は、今は、第二のレベルの指標として列およびCOL1とCOL2としてIND2(x、y)を配置します。

     x  y 
    ind1 col    
    A col1  3  2 
     col2  2  0 
    B col1  2  4 
     col2  2  3 
    C col1  3  1 
     col2  0  0 

私はいくつかの方法を試しましたが、すべて失敗しました。それを達成する簡単な方法はありますか?

ありがとうございます!

+1

'df.stack()。unstack( 'ind2')' –

+0

を試してください、ありがとうございます! – CobbDG

+0

実際には、結果として得られたデータフレームと同じ結果が得られません。結果のデータフレームデータに間違いはありましたか? –

答えて

0

これを行うにあたってのヒントがあります。基本的に列の名前をインデックスで置き換えるので、列名とインデックス名を手動で取得して切り替えてください。

# grab column and index names 
col_names = df.columns.values 
idx_names = df.index.levels[1].values 

# replace them and then rename the inner index 
df.index.set_levels(col_names, level=1, inplace=True) 
df.columns = idx_names 
df.index.set_names('col', level=1, inplace=True) 

      x y 
ind1 col  
A col1 3 2 
    col2 2 0 
B col1 2 4 
    col2 2 3 
C col1 3 1 
    col2 0 0 
関連する問題