pandas.DataFrame.rename_axis#

DataFrame.rename_axis(mapper=_NoDefault.no_default, *, index=_NoDefault.no_default, columns=_NoDefault.no_default, axis=0, copy=None, inplace=False)[源代码]#

设置索引或列的轴名称。

Parameters:
mapper标量、类列表、可选

要设置的轴名称属性的值。

index, columns标量、类列表、类字典或函数、可选

应用于该轴值的标量、类列表、类字典或函数变换。请注意,如果对象是 Series,则不允许使用 columns 参数。此参数仅适用于 DataFrame 类型对象。

使用 mapperaxis 指定 mapper 要指向的轴,或者使用 index 和/或 columns

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

要重命名的轴。对于 Series,此参数未使用,默认为 0。

copy布尔值,默认为 None

同时复制底层数据。

备注

copy 关键字在 pandas 3.0 中将更改行为。Copy-on-Write 将默认启用,这意味着所有带有 copy 关键字的方法都将使用惰性复制机制来延迟复制并忽略 copy 关键字。copy 关键字将在 pandas 的未来版本中移除。

通过启用 copy on write pd.options.mode.copy_on_write = True,您可以获得未来的行为和改进。

inplacebool,默认 False

直接修改对象,而不是创建新的 Series 或 DataFrame。

Returns:
Series、DataFrame 或 None

与调用者相同的类型,或在 inplace=True 时为 None。

参见

Series.rename

更改 Series 索引标签或名称。

DataFrame.rename

更改 DataFrame 索引标签或名称。

Index.rename

设置索引上的新名称。

Notes

DataFrame.rename_axis 支持两种调用约定:

  • (index=index_mapper, columns=columns_mapper, ...)

  • (mapper, axis={'index', 'columns'}, ...)

第一种调用约定仅修改索引的名称和/或作为列的 Index 对象的名称。在这种情况下,copy 参数将被忽略。

第二种调用约定将修改相应索引的名称(如果 mapper 是列表或标量)。但是,如果 mapper 是类字典或函数,它将使用已弃用的修改轴 标签 的行为。

我们*强烈*建议使用关键字参数来明确您的意图。

Examples

Series

>>> s = pd.Series(["dog", "cat", "monkey"])
>>> s
0       dog
1       cat
2    monkey
dtype: object
>>> s.rename_axis("animal")
animal
0    dog
1    cat
2    monkey
dtype: object

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