["python","pandas","indexing","dataframe"]
Start row index from 1 instead of zero without creating additional column in pandas

I know that I can reset the indices like so df.reset_index(inplace=True) but this will start the index from 0. I want to start it from 1. How do I do that without creating any extra columns and by keeping the index/reset_index functionality and options? I do not want to create a new dataframe, so inplace=True should still apply.
Just assign directly a new index array: df.index = np.arange(1, len(df)+1) Or if the index is already 0 based, just: df.index += 1 Example: 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 TIMINGS For some reason I can't take timings on reset_index but the following are timings on a 100,000 row 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 So without the timing for reset_index I can't say definitively, however it looks like just adding 1 to each index value will be faster if the index is already 0 based