开发手册 欢迎您!
软件开发者资料库

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"])>>> s0       dog1       cat2    monkeydtype: object>>> s.rename_axis("animal")animal0    dog1    cat2    monkeydtype: object

DataFrame

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

MultiIndex

>>> df.index = pd.MultiIndex.from_product([['mammal'],...                                        ['dog', 'cat', 'monkey']],...                                       names=['type', 'name'])>>> dflimbs          num_legs  num_armstype   namemammal dog            4         0       cat            4         0       monkey         2         2

>>> df.rename_axis(index={'type': 'class'})limbs          num_legs  num_armsclass  namemammal dog            4         0       cat            4         0       monkey         2         2

>>> df.rename_axis(columns=str.upper)LIMBS          num_legs  num_armstype   namemammal dog            4         0       cat            4         0       monkey         2         2