私はいつもこれに驚かされます:
> 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
新しい順序に合わせてインデックスを再割り当てする方法はありますか?
私としては、並べ替えによってインデックス情報が破棄されないことを嬉しく思います。もしそうなら、別の列とは対照的に、そもそもインデックスを持つことにはあまり意味がありません。
インデックスを範囲にリセットする場合は、次のことができます。
>>> data
x y
1 2 1
0 1 2
>>> data.reset_index(drop=True)
x y
0 2 1
1 1 2
好きなように再割り当てまたは使用できる場所inplace=True
。代わりに、インデックスに関係なく位置でアクセスすることが実際の問題である場合は、次を使用できますiloc
。
>>> data['x']
1 2
0 1
Name: x, dtype: int64
>>> data['x'][0]
1
>>> data['x'].iloc[0]
2