DataFrame.rename_axis(self, mapper=None, index=None, columns=None, axis=None, copy=True, inplace=False) [source]
设置索引或列的axis名称。
参数: | mapper : 设置axis名称属性的值。 index, columns : 类似 标量,类似于列表,类似于 以应用于该axis的值。 使用mapper和axis, 可以使用 指定要指定的轴。 在版本0.24.0中更改。 axis : {0 或 ‘index’, 1 或 ‘columns’}, 默认为 重命名的轴。 copy : 还要复制底层数据。 inplace : bool, 默认为 False 直接修改对象,而不是创建新的Series或DataFrame。 |
返回值: | Series, DataFrame, 或 None 类型与调用者相同,如果 |
Notes
DataFrame.rename_axis
支持两种调用约定
- (index=index_mapper, columns=columns_mapper, ...)
- (mapper, axis={'index', 'columns'}, ...)
第一个调用约定将仅修改索引的名称和/或作为列的Index
对象的名称。在这种情况下,该参数将copy
被忽略。
如果映射器是列表或标量,则第二个调用约定将修改相应索引的名称。但是,如果mapper
是dict
类或函数,它将使用不推荐的行为来修改轴标签。
我们强烈建议您使用关键字参数来阐明您的意图。
例子
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