2016-10-19 12 views
1

私は以下のようなデータフレームを持っています。python pandas:データフレーム内のインデックス、カラム、および値の再割り当て

    y  1(x)  2(x)   3(x) 

       0 0.016175 0.027594 0.035070 
       1 0.017832 0.029950 0.036329 
       2 0.021536 0.031890 0.037297 
       3 0.024777 0.033570 0.037983 

元のインデックスは、列見出しおよびyに配置されるべき新しいすべきである:XはI、結果がどのように見えるように、フレーム内のデータを再配置したいインデックス

    y  value 
x     
1     0 0.016175 
1     1 0.017832 
1     2 0.021536 
1     3 0.024777 
2     0 0.027594 
2     1 0.029950 
2     2 0.031890 
2     3 0.033570 
3     0 0.035070 
3     1 0.036329 
3     2 0.037297 
3     3 0.037983 

でありますインデックス。任意のアイデアをどのようにPythonでこれを実装するには?

答えて

3

あなたが最初reset_index、その後、pivotと最後add_suffixを使用することができます。

print (df.reset_index().pivot(index='y', columns='x', values='value').add_suffix('(x)')) 
x  1(x)  2(x)  3(x) 
y        
0 0.016175 0.027594 0.035070 
1 0.017832 0.029950 0.036329 
2 0.021536 0.031890 0.037297 
3 0.024777 0.033570 0.037983 

最終列名を削除する必要がある場合(pandas0.18.0に新)rename_axisを追加します。

print (df.reset_index() 
     .pivot(index='y', columns='x', values='value') 
     .add_suffix('(x)') 
     .rename_axis(None, axis=1)) 
     1(x)  2(x)  3(x) 
y        
0 0.016175 0.027594 0.035070 
1 0.017832 0.029950 0.036329 
2 0.021536 0.031890 0.037297 
3 0.024777 0.033570 0.037983 
関連する問題