Ответ 1
Просто назначьте новый массив индексов:
df.index = np.arange(1, len(df) + 1)
Пример:
In [151]:
df = pd.DataFrame({'a':np.random.randn(5)})
df
Out[151]:
a
0 0.443638
1 0.037882
2 -0.210275
3 -0.344092
4 0.997045
In [152]:
df.index = np.arange(1,len(df)+1)
df
Out[152]:
a
1 0.443638
2 0.037882
3 -0.210275
4 -0.344092
5 0.997045
Или просто:
df.index = df.index + 1
Если индекс уже равен 0 на основе
тайминги
По какой-то причине я не могу принимать тайминги на reset_index
, но следующие тайминги для строки 10000 df:
In [160]:
%timeit df.index = df.index + 1
The slowest run took 6.45 times longer than the fastest. This could mean that an intermediate result is being cached
10000 loops, best of 3: 107 µs per loop
In [161]:
%timeit df.index = np.arange(1, len(df) + 1)
10000 loops, best of 3: 154 µs per loop
Итак, без времени для reset_index
я не могу сказать окончательно, однако похоже, что только добавление 1 к каждому индексу будет быстрее, если индекс уже 0
основан на