You can just get/set the index via its name property
CopyIn [7]: df.index.name
Out[7]: 'Index Title'
In [8]: df.index.name = 'foo'
In [9]: df.index.name
Out[9]: 'foo'
In [10]: df
Out[10]:
Column 1
foo
Apples 1
Oranges 2
Puppies 3
Ducks 4
Answer from Jeff on Stack OverflowPandas
pandas.pydata.org โบ docs โบ reference โบ api โบ pandas.DataFrame.set_index.html
pandas.DataFrame.set_index โ pandas 3.0.3 documentation
>>> df.set_index([pd.Index([1, 2, 3, 4]), "year"]) month sale year 1 2012 1 55 2 2014 4 40 3 2013 7 84 4 2014 10 31 ... >>> s = pd.Series([1, 2, 3, 4]) >>> df.set_index([s, s**2]) month year sale 1 1 1 2012 55 2 4 4 2014 40 3 9 7 2013 84 4 16 10 2014 31
Pandas
pandas.pydata.org โบ docs โบ reference โบ api โบ pandas.Series.index.html
pandas.Series.index โ pandas 3.0.3 documentation - PyData |
For more information on pandas indexing, see the indexing user guide. ... >>> cities = ['Kolkata', 'Chicago', 'Toronto', 'Lisbon'] >>> populations = [14.85, 2.71, 2.93, 0.51] >>> city_series = pd.Series(populations, index=cities) >>> city_series.index Index(['Kolkata', 'Chicago', 'Toronto', 'Lisbon'], dtype='object')
Videos
05:49
Manipulando o INDEX de um DATAFRAME - reset index e set index - ...
02:32
Set Index of pandas DataFrame in Python (Example) | How to Convert ...
03:33
Pandas Set Index | pd.DataFrame.set_index() - YouTube
04:58
How To Change And Reset Index - Pandas For Machine Learning 11 ...
15:17
Python Pandas Series and Dataframes: Indexing, Selection, Booleans ...
Pandas - How I use the set_index() method - YouTube
Top answer 1 of 10
629
You can just get/set the index via its name property
CopyIn [7]: df.index.name
Out[7]: 'Index Title'
In [8]: df.index.name = 'foo'
In [9]: df.index.name
Out[9]: 'foo'
In [10]: df
Out[10]:
Column 1
foo
Apples 1
Oranges 2
Puppies 3
Ducks 4
2 of 10
142
You can use rename_axis, for removing set to None:
Copyd = {'Index Title': ['Apples', 'Oranges', 'Puppies', 'Ducks'],'Column 1': [1.0, 2.0, 3.0, 4.0]}
df = pd.DataFrame(d).set_index('Index Title')
print (df)
Column 1
Index Title
Apples 1.0
Oranges 2.0
Puppies 3.0
Ducks 4.0
print (df.index.name)
Index Title
print (df.columns.name)
None
The new functionality works well in method chains.
Copydf = df.rename_axis('foo')
print (df)
Column 1
foo
Apples 1.0
Oranges 2.0
Puppies 3.0
Ducks 4.0
You can also rename column names with parameter axis:
Copyd = {'Index Title': ['Apples', 'Oranges', 'Puppies', 'Ducks'],'Column 1': [1.0, 2.0, 3.0, 4.0]}
df = pd.DataFrame(d).set_index('Index Title').rename_axis('Col Name', axis=1)
print (df)
Col Name Column 1
Index Title
Apples 1.0
Oranges 2.0
Puppies 3.0
Ducks 4.0
print (df.index.name)
Index Title
print (df.columns.name)
Col Name
Copyprint df.rename_axis('foo').rename_axis("bar", axis="columns")
bar Column 1
foo
Apples 1.0
Oranges 2.0
Puppies 3.0
Ducks 4.0
print df.rename_axis('foo').rename_axis("bar", axis=1)
bar Column 1
foo
Apples 1.0
Oranges 2.0
Puppies 3.0
Ducks 4.0
From version pandas 0.24.0+ is possible use parameter index and columns:
Copydf = df.rename_axis(index='foo', columns="bar")
print (df)
bar Column 1
foo
Apples 1.0
Oranges 2.0
Puppies 3.0
Ducks 4.0
Removing index and columns names means set it to None:
Copydf = df.rename_axis(index=None, columns=None)
print (df)
Column 1
Apples 1.0
Oranges 2.0
Puppies 3.0
Ducks 4.0
If MultiIndex in index only:
Copymux = pd.MultiIndex.from_arrays([['Apples', 'Oranges', 'Puppies', 'Ducks'],
list('abcd')],
names=['index name 1','index name 1'])
df = pd.DataFrame(np.random.randint(10, size=(4,6)),
index=mux,
columns=list('ABCDEF')).rename_axis('col name', axis=1)
print (df)
col name A B C D E F
index name 1 index name 1
Apples a 5 4 0 5 2 2
Oranges b 5 8 2 5 9 9
Puppies c 7 6 0 7 8 3
Ducks d 6 5 0 1 6 0
Copyprint (df.index.name)
None
print (df.columns.name)
col name
print (df.index.names)
['index name 1', 'index name 1']
print (df.columns.names)
['col name']
Copydf1 = df.rename_axis(('foo','bar'))
print (df1)
col name A B C D E F
foo bar
Apples a 5 4 0 5 2 2
Oranges b 5 8 2 5 9 9
Puppies c 7 6 0 7 8 3
Ducks d 6 5 0 1 6 0
df2 = df.rename_axis('baz', axis=1)
print (df2)
baz A B C D E F
index name 1 index name 1
Apples a 5 4 0 5 2 2
Oranges b 5 8 2 5 9 9
Puppies c 7 6 0 7 8 3
Ducks d 6 5 0 1 6 0
df2 = df.rename_axis(index=('foo','bar'), columns='baz')
print (df2)
baz A B C D E F
foo bar
Apples a 5 4 0 5 2 2
Oranges b 5 8 2 5 9 9
Puppies c 7 6 0 7 8 3
Ducks d 6 5 0 1 6 0
Removing index and columns names means set it to None:
Copydf2 = df.rename_axis(index=(None,None), columns=None)
print (df2)
A B C D E F
Apples a 6 9 9 5 4 6
Oranges b 2 6 7 4 3 5
Puppies c 6 3 6 3 5 1
Ducks d 4 9 1 3 0 5
For MultiIndex in index and columns is necessary working with .names instead .name and set by list or tuples:
Copymux1 = pd.MultiIndex.from_arrays([['Apples', 'Oranges', 'Puppies', 'Ducks'],
list('abcd')],
names=['index name 1','index name 1'])
mux2 = pd.MultiIndex.from_product([list('ABC'),
list('XY')],
names=['col name 1','col name 2'])
df = pd.DataFrame(np.random.randint(10, size=(4,6)), index=mux1, columns=mux2)
print (df)
col name 1 A B C
col name 2 X Y X Y X Y
index name 1 index name 1
Apples a 2 9 4 7 0 3
Oranges b 9 0 6 0 9 4
Puppies c 2 4 6 1 4 4
Ducks d 6 6 7 1 2 8
Plural is necessary for check/set values:
Copyprint (df.index.name)
None
print (df.columns.name)
None
print (df.index.names)
['index name 1', 'index name 1']
print (df.columns.names)
['col name 1', 'col name 2']
Copydf1 = df.rename_axis(('foo','bar'))
print (df1)
col name 1 A B C
col name 2 X Y X Y X Y
foo bar
Apples a 2 9 4 7 0 3
Oranges b 9 0 6 0 9 4
Puppies c 2 4 6 1 4 4
Ducks d 6 6 7 1 2 8
df2 = df.rename_axis(('baz','bak'), axis=1)
print (df2)
baz A B C
bak X Y X Y X Y
index name 1 index name 1
Apples a 2 9 4 7 0 3
Oranges b 9 0 6 0 9 4
Puppies c 2 4 6 1 4 4
Ducks d 6 6 7 1 2 8
df2 = df.rename_axis(index=('foo','bar'), columns=('baz','bak'))
print (df2)
baz A B C
bak X Y X Y X Y
foo bar
Apples a 2 9 4 7 0 3
Oranges b 9 0 6 0 9 4
Puppies c 2 4 6 1 4 4
Ducks d 6 6 7 1 2 8
Removing index and columns names means set it to None:
Copydf2 = df.rename_axis(index=(None,None), columns=(None,None))
print (df2)
A B C
X Y X Y X Y
Apples a 2 0 2 5 2 0
Oranges b 1 7 5 5 4 8
Puppies c 2 4 6 3 6 5
Ducks d 9 6 3 9 7 0
And @Jeff solution:
GeeksforGeeks
geeksforgeeks.org โบ pandas โบ python-pandas-series-index
Pandas Series Index Attribute - GeeksforGeeks
July 11, 2025 - Explanation: The index labels ('Day 1' to 'Day 4') are assigned to a Series and retrieved using series.index. Example 3. Resetting Index to Default ยท If needed, we can reset the index to default integer values. ... import pandas as pd Date = ['1/1/2018', '2/1/2018', '3/1/2018', '4/1/2018'] idx_name = ['Day 1', 'Day 2', 'Day 3', 'Day 4'] sr = pd.Series(data = Date, # Series Data index = idx_name # Index ) # Resetting index to default sr.reset_index(drop=True, inplace=True) print(sr)
Pandas
pandas.pydata.org โบ docs โบ reference โบ api โบ pandas.Series.name.html
pandas.Series.name โ pandas 3.0.3 documentation - PyData |
Corresponding Index property. ... The Series name can be set initially when calling the constructor.
Pandas
pandas.pydata.org โบ docs โบ reference โบ api โบ pandas.Index.set_names.html
pandas.Index.set_names โ pandas 3.0.3 documentation
>>> idx = pd.Index([1, 2, 3, 4]) >>> idx Index([1, 2, 3, 4], dtype='int64') >>> idx.set_names("quarter") Index([1, 2, 3, 4], dtype='int64', name='quarter')
Pandas
pandas.pydata.org โบ docs โบ reference โบ api โบ pandas.Series.reset_index.html
pandas.Series.reset_index โ pandas 3.0.3 documentation
Series.reset_index(level=None, *, drop=False, name=<no_default>, inplace=False, allow_duplicates=False)[source]#
PYnative
pynative.com โบ home โบ python โบ pandas โบ set index in pandas dataframe
Set index in pandas DataFrame
March 9, 2023 - Before set index: Name Age Marks ... the existing columns, we can create such a multi-index DataFrame by assigning new series using DataFrame.set_index() function....
Pandas
pandas.pydata.org โบ docs โบ reference โบ api โบ pandas.Index.name.html
pandas.Index.name โ pandas 3.0.3 documentation - PyData |
The name of the Index. ... Able to set new names partially and by level. ... Able to set new names partially and by level. ... Corresponding Series property.
PythonForBeginners.com
pythonforbeginners.com โบ home โบ rename index in a pandas series
Rename Index in a Pandas Series - PythonForBeginners.com
December 2, 2022 - The mapper parameter takes the new name of the index as its input argument. By default, the rename_axis() method returns a new series object. To modify the original series on which the rename_axis() method is invoked, you can set the inplace parameter to True.
Pandas
pandas.pydata.org โบ docs โบ reference โบ api โบ pandas.Index.to_series.html
pandas.Index.to_series โ pandas 3.0.3 documentation
>>> idx.to_series(index=[0, 1, 2]) 0 Ant 1 Bear 2 Cow Name: animal, dtype: str
Pandas
pandas.pydata.org โบ pandas-docs โบ stable โบ reference โบ api โบ pandas.Index.set_names.html
pandas.Index.set_names โ pandas 3.0.2 documentation
>>> idx = pd.Index([1, 2, 3, 4]) >>> idx Index([1, 2, 3, 4], dtype='int64') >>> idx.set_names("quarter") Index([1, 2, 3, 4], dtype='int64', name='quarter')
Pandas
pandas.pydata.org โบ pandas-docs โบ stable โบ reference โบ api โบ pandas.Series.name.html
pandas.Series.name โ pandas 2.3.3 documentation - PyData |
Corresponding Index property. ... The Series name can be set initially when calling the constructor.
Pandas
pandas.pydata.org โบ pandas-docs โบ stable โบ reference โบ api โบ pandas.Series.reset_index.html
pandas.Series.reset_index โ pandas 3.0.2 documentation
Series.reset_index(level=None, *, drop=False, name=<no_default>, inplace=False, allow_duplicates=False)[source]#
Pandas
pandas.pydata.org โบ pandas-docs โบ stable โบ reference โบ api โบ pandas.Series.reindex.html
pandas.Series.reindex โ pandas 3.0.2 documentation
A new object is produced unless the new index is equivalent to the current one and copy=False. ... A scalar, list-like, dict-like or functions transformations to apply to that axisโ values. ... The axis to rename. For Series this parameter is unused and defaults to 0.
Pandas
pandas.pydata.org โบ docs โบ reference โบ api โบ pandas.Series.reindex.html
pandas.Series.reindex โ pandas 3.0.3 documentation
A new object is produced unless the new index is equivalent to the current one and copy=False. ... A scalar, list-like, dict-like or functions transformations to apply to that axisโ values. ... The axis to rename. For Series this parameter is unused and defaults to 0.
Pandas
pandas.pydata.org โบ docs โบ reference โบ api โบ pandas.Series.rename_axis.html
pandas.Series.rename_axis โ pandas 3.0.3 documentation
Series.rename_axis(mapper=<no_default>, *, index=<no_default>, axis=0, copy=<no_default>, inplace=False)[source]# Set the name of the axis for the index.