2017-02-14 4 views
1

私は多くの列を持つDataFrameを持っています。最初の列を私の最初のインデックス、5番目の列を2番目のレベルのインデックス、15番目の列を3番目のレベルのインデックスにします。どうすればいいですか?私はこのDataFrameを提供していないため、長い間許してください。言い換えれば列をマルチレベルインデックスのパンダに変換

は、私がss1を回すかもしれませんどのように次のコード

arrays = [['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux'], 
    ...:   ['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two']] 
tuples = list(zip(*arrays)) 
index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second']) 
s = pd.DataFrame(np.random.randn(8, 4), index=arrays) 
s1=s.reset_index(drop=0) 
s1 

があると?

答えて

2

set_indexを使用してこれを行うことができます。

>>> s1.set_index(['level_0', 'level_1'], drop=True) 
         0   1   2   3 
level_0 level_1           
bar  one  -0.300791 0.013540 0.713098 -0.359717 
     two  1.044732 -0.364056 1.055409 0.341651 
baz  one  0.340860 0.092612 -0.275117 0.271777 
     two  0.-0.254870 0.745544 -1.787725 
foo  one  -0.594016 -0.034900 -0.495453 0.153198 
     two  0.852272 -2.460928 -0.248302 0.534830 
qux  one  -0.396236 0.302698 1.791999 0.422901 
     two  1.379244 -0.612005 -0.614633 -0.538105 
関連する問題