How to rename index in Pandas DataFrame?

The index of a Pandas DataFrame can be easily renamed using the DataFrame.rename() method. This method takes in a dictionary with the old index names as keys and new index names as values. The inplace argument can also be set to True to modify the existing DataFrame. The DataFrame.reset_index() method can also be used to reset the index and then rename it. Both of these methods work on both single and multi-level indexes.


You can use the following syntax to rename the index column of a pandas DataFrame:

df.index.rename('new_index_name', inplace=True)

The following example shows how to use this syntax in practice.

Example: Rename Index in Pandas DataFrame

Suppose we have the following pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19, 23, 25, 29],
                   'assists': [5, 7, 7, 9, 12, 9, 9, 4],
                   'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
df

   points  assists  rebounds
0      25        5        11
1      12        7         8
2      15        7        10
3      14        9         6
4      19       12         6
5      23        9         5
6      25        9         9
7      29        4        12

Currently the DataFrame has no index name:

#display index name
print(df.index.name)

None

We can use df.index.rename() to rename the index:

#rename index
df.index.rename('new_index', inplace=True)

#view updated DataFrame
df

	   points assists rebounds
new_index			
0	   25	  5	  11
1	   12	  7	  8
2	   15	  7	  10
3	   14	  9	  6
4	   19	  12	  6
5	   23	  9	  5
6	   25	  9	  9
7	   29	  4	  12

Note that inplace=True tells pandas to retain all of the original DataFrame properties.

We can verify that the DataFrame now has an index name:

#display index name
print(df.index.name)

new_index

x