При использовании 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

Есть ли способ, по которому индексы могут быть переназначены для соответствия новому порядку?

Ответ 1

Со своей стороны, я рад, что сортировка не выбрасывает информацию индекса. Если бы это было так, то не было бы большого смысла иметь индекс, в первую очередь, в отличие от другого столбца.

Если вы хотите reset указатель на диапазон, вы можете:

>>> 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