Series.rename(index=None, *, axis=None, copy=True, inplace=False, level=None, errors='ignore')[source]

Alter Series index labels or name.

Function / dict values must be unique (1-to-1). Labels not contained in a dict / Series will be left as-is. Extra labels listed don’t throw an error.

Alternatively, change with a scalar value.

See the user guide for more.

indexscalar, hashable sequence, dict-like or function optional

Functions or dict-like are transformations to apply to the index. Scalar or hashable sequence-like will alter the attribute.

axis{0 or ‘index’}

Unused. Parameter needed for compatibility with DataFrame.

copybool, default True

Also copy underlying data.

inplacebool, default False

Whether to return a new Series. If True the value of copy is ignored.

levelint or level name, default None

In case of MultiIndex, only rename labels in the specified level.

errors{‘ignore’, ‘raise’}, default ‘ignore’

If ‘raise’, raise KeyError when a dict-like mapper or index contains labels that are not present in the index being transformed. If ‘ignore’, existing keys will be renamed and extra keys will be ignored.

Series or None

Series with index labels or name altered or None if inplace=True.

See also


Corresponding DataFrame method.


Set the name of the axis.


>>> s = pd.Series([1, 2, 3])
>>> s
0    1
1    2
2    3
dtype: int64
>>> s.rename("my_name")  # scalar, changes
0    1
1    2
2    3
Name: my_name, dtype: int64
>>> s.rename(lambda x: x ** 2)  # function, changes labels
0    1
1    2
4    3
dtype: int64
>>> s.rename({1: 3, 2: 5})  # mapping, changes labels
0    1
3    2
5    3
dtype: int64