Несмотря на то, что в комментариях выше было написано, что этого достаточно, этого может быть достаточно, чтобы получить соответствующий индекс с низким объемом памяти и начинающийся с -1
.
pandas.RangeIndex
Принимает параметры запуска и остановки, такие как range
df = df.set_index(pd.RangeIndex(-1, len(df) - 1))
print(df.index, df.index.dtype, sep='\n')
Это должно быть очень эффективно для памяти.
Несмотря на то, что он все еще имеет dtype
int64
(что вам нужно), он занимает очень мало памяти.
pd.RangeIndex(-1, 4000000).memory_usage()
84
И
for i in range(1, 1000000, 100000):
print(pd.RangeIndex(-1, i).memory_usage())
84
84
84
84
84
84
84
84
84
84