我总是对此感到惊讶:
> 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