pandas.DataFrame.rename_axis #

数据框。rename_axis ( mapper = _NoDefault.no_default , * , index = _NoDefault.no_default , columns = _NoDefault.no_default , axis = 0 , copy = None , inplace = False ) [来源] #

设置索引或列的轴名称。

参数
映射器标量,类似列表,可选

设置轴名称属性的值。

索引、列标量、类列表、类字典或函数,可选

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

使用mapper和指定要通过、 或 和/或axis定位的轴。mapperindexcolumns

{0 或 'index', 1 或 'columns'}, 默认 0

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

复制布尔值,默认无

同时复制基础数据。

笔记

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

您已经可以通过启用写入时复制来获得未来的行为和改进pd.options.mode.copy_on_write = True

inplace布尔值,默认 False

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

返回
系列、数据帧或无

与调用者的类型相同或 None if inplace=True

也可以看看

Series.rename

更改系列索引标签或名称。

DataFrame.rename

更改 DataFrame 索引标签或名称。

Index.rename

在索引上设置新名称。

笔记

DataFrame.rename_axis支持两种调用约定

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

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

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

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

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

例子

系列

>>> 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

数据框

>>> 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

多重索引

>>> 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