有没有更简单的方法来更改 pandas 数据框的索引值?

Is there an easier way to change the index values of a pandas dataframe?

我正在获取一个数据帧,将其分成两个数据帧,然后我需要更改索引值,以便没有数字大于总行数。

代码如下:

dataset =   pd.read_csv("dataset.csv",usecols['row_id','x','y','time'],index_col=0)
splitvalue = math.floor((0.9)*786239)
train = dataset[dataset.time < splitvalue]
test = dataset[dataset.time >= splitvalue]

这是我正在做的改变。我想知道是否有更简单的方法:

test.index=range(test.shape[0])
test.index.rename('row_id',inplace=True)

有更好的方法吗?

尝试:

test = test.reset_index(drop=True).rename_axis('row_id')

你应该在切片之前打乱你的数据....

dataset.reindex(np.random.permutation(dataset.index))

否则你会偏向你的 test/train 集。

您可以直接分配一个新的Index对象来覆盖索引:

test.index = pd.Index(np.arange(len(df)), name='row_id')