2013-07-13 8 views
11

私はいつもこれで驚いています:Pandas DataFrame.sort()を使用しているときに、実際に行の番号を変更できるようにすることはできますか?

> data = DataFrame({'x':[1, 2], 'y':[2, 1]}) 
> data = data.sort('y') 
> data 
    x y 
1 2 1 
0 1 2 

> data['x'][0] 
1 

は、私はインデックスが新しい順序に合わせて再割り当てされることがあります方法はありますか?

+0

インデックスは例えば、タイムスタンプされている場合、これは意味がありません。必要に応じて、インデックスプロパティを再割り当てすることができます。 –

答えて

22

私の意見では、インデックス情報を捨てないとうれしいです。そうした場合、他の列とは対照的に、最初にインデックスを持つことにはあまり意味がありません。

あなたが範囲にインデックスをリセットしたい場合は、あなたの可能性:

再割り当てしたり、気に入ったよう inplace=Trueを使用することができ
>>> data 
    x y 
1 2 1 
0 1 2 
>>> data.reset_index(drop=True) 
    x y 
0 2 1 
1 1 2 

。代わりに、本当の問題は、あなたが、インデックスの独立した立場でアクセスしたいということであれば、あなたはilocを使用することができます。

>>> data['x'] 
1 2 
0 1 
Name: x, dtype: int64 
>>> data['x'][0] 
1 
>>> data['x'].iloc[0] 
2 
+0

パーフェクト;ありがとうございました! – Owen

関連する問題