pandas.DataFrame.rename_axis — pandas 3.0.0.dev0+2102.g839747c3f6 documentation (original) (raw)

DataFrame.rename_axis(mapper=<no_default>, *, index=<no_default>, columns=<no_default>, axis=0, copy=<no_default>, inplace=False)[source]#

Set the name of the axis for the index or columns.

Parameters:

mapperscalar, list-like, optional

Value to set the axis name attribute.

Use either mapper and axis to specify the axis to target with mapper, or indexand/or columns.

indexscalar, list-like, dict-like or function, optional

A scalar, list-like, dict-like or functions transformations to apply to that axis’ values.

columnsscalar, list-like, dict-like or function, optional

A scalar, list-like, dict-like or functions transformations to apply to that axis’ values.

axis{0 or ‘index’, 1 or ‘columns’}, default 0

The axis to rename.

copybool, default False

Also copy underlying data.

Note

The copy keyword will change behavior in pandas 3.0.Copy-on-Writewill be enabled by default, which means that all methods with acopy keyword will use a lazy copy mechanism to defer the copy and ignore the copy keyword. The copy keyword will be removed in a future version of pandas.

You can already get the future behavior and improvements through enabling copy on write pd.options.mode.copy_on_write = True

Deprecated since version 3.0.0.

inplacebool, default False

Modifies the object directly, instead of creating a new Series or DataFrame.

Returns:

DataFrame, or None

The same type as the caller or None if inplace=True.

Notes

DataFrame.rename_axis supports two calling conventions

The first calling convention will only modify the names of the index and/or the names of the Index object that is the columns. In this case, the parameter copy is ignored.

The second calling convention will modify the names of the corresponding index if mapper is a list or a scalar. However, if mapper is dict-like or a function, it will use the deprecated behavior of modifying the axis labels.

We highly recommend using keyword arguments to clarify your intent.

Examples

DataFrame

df = pd.DataFrame( ... {"num_legs": [4, 4, 2], "num_arms": [0, 0, 2]}, ["dog", "cat", "monkey"] ... ) df num_legs num_arms dog 4 0 cat 4 0 monkey 2 2 df = df.rename_axis("animal") df num_legs num_arms animal dog 4 0 cat 4 0 monkey 2 2 df = df.rename_axis("limbs", axis="columns") df limbs num_legs num_arms animal dog 4 0 cat 4 0 monkey 2 2

MultiIndex

df.index = pd.MultiIndex.from_product( ... [["mammal"], ["dog", "cat", "monkey"]], names=["type", "name"] ... ) df limbs num_legs num_arms type name mammal dog 4 0 cat 4 0 monkey 2 2

df.rename_axis(index={"type": "class"}) limbs num_legs num_arms class name mammal dog 4 0 cat 4 0 monkey 2 2

df.rename_axis(columns=str.upper) LIMBS num_legs num_arms type name mammal dog 4 0 cat 4 0 monkey 2 2