Python pandas.DataFrame.rename_axis函数方法的使用

Pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。本文主要介绍一下Pandas中pandas.DataFrame.rename_axis方法的使用。

DataFrame.rename_axis(self, mapper=None, index=None, columns=None, axis=None, copy=True, inplace=False) [source]

设置索引或列的axis名称。

参数:

mapper scalar, 类似list, optional

设置axis名称属性的值。

index, columns scalar, 类似list, 

类似dictfunction, 可选

标量,类似于列表,类似于dict或函数的转换,

以应用于该axis的值。

使用mapper和axis,

可以使用mapperindex 和/columns

指定要指定的轴。

在版本0.24.0中更改。

axis : {0 或 ‘index’, 1 或 ‘columns’}, 默认为 0

重命名的轴。

copy : bool, 默认 True

还要复制底层数据。

inplace : bool, 默认为 False

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

返回值:

Series, DataFrame, 或 None

类型与调用者相同,如果inplaceTrue,则为None

Notes

DataFrame.rename_axis 支持两种调用约定

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

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

如果映射器是列表或标量,则第二个调用约定将修改相应索引的名称。但是,如果mapperdict类或函数,它将使用不推荐的行为来修改轴标签。

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

例子

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

推荐阅读
cjavapy编程之路首页