pandas.DataFrame.rename#

DataFrame.rename(mapper=None, *, index=None, columns=None, axis=None, copy=<no_default>, inplace=False, level=None, errors='ignore')[源代码][源代码]#

重命名列或索引标签。

函数 / 字典值必须是唯一的(一对一)。不在字典 / 系列中的标签将保持不变。额外列出的标签不会引发错误。

更多信息请参见 用户指南

参数:
mapper类似字典或函数

类似于字典或函数的转换应用于该轴的值。使用 mapperaxis 来指定使用 mapper 的目标轴,或者使用 indexcolumns

索引类似字典或函数

指定轴的替代方法(mapper, axis=0 等同于 index=mapper)。

类似字典或函数

指定轴的替代方法(mapper, axis=1 等同于 columns=mapper)。

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

使用 mapper 的目标轴。可以是轴名称(’index’, ‘columns’)或数字(0, 1)。默认值是 ‘index’。

复制布尔值, 默认为 False

同时复制底层数据。

备注

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

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

自 3.0.0 版本弃用.

inplace布尔值, 默认为 False

是否修改 DataFrame 而不是创建一个新的。如果为 True,则忽略 copy 的值。

级别整数或级别名称,默认无

在多索引的情况下,仅重命名指定级别的标签。

错误{‘ignore’, ‘raise’}, 默认 ‘ignore’

如果 ‘raise’,当一个类似字典的 mapperindexcolumns 包含在正在转换的 Index 中不存在的标签时,会引发一个 KeyError。如果 ‘ignore’,现有的键将被重命名,多余的键将被忽略。

返回:
DataFrame 或 None

重命名轴标签的 DataFrame 或如果 inplace=True 则为 None。

引发:
KeyError

如果在选定的轴中找不到任何标签并且 “errors=’raise’”。

参见

DataFrame.rename_axis

设置轴的名称。

例子

DataFrame.rename 支持两种调用约定

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

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

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

使用映射重命名列:

>>> df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]})
>>> df.rename(columns={"A": "a", "B": "c"})
   a  c
0  1  4
1  2  5
2  3  6

使用映射重命名索引:

>>> df.rename(index={0: "x", 1: "y", 2: "z"})
   A  B
x  1  4
y  2  5
z  3  6

将索引标签转换为不同类型:

>>> df.index
RangeIndex(start=0, stop=3, step=1)
>>> df.rename(index=str).index
Index(['0', '1', '2'], dtype='object')
>>> df.rename(columns={"A": "a", "B": "b", "C": "c"}, errors="raise")
Traceback (most recent call last):
KeyError: ['C'] not found in axis

使用轴样式参数:

>>> df.rename(str.lower, axis="columns")
   a  b
0  1  4
1  2  5
2  3  6
>>> df.rename({1: 2, 2: 4}, axis="index")
   A  B
0  1  4
2  2  5
4  3  6