DataFrame.rename(self, mapper=None, index=None, columns=None, axis=None, copy=True, inplace=False, level=None, errors='ignore') [source]
更改轴标签。
Function/dict值必须唯一(1对1)。dict/Series
中未包含的标签将保持原样。列出的其他标签不会引发错误。
有关更多信息,请参见用户指南。
参数: | mapper: 类似字典或函数 类似Dict或函数的转换,以应用于该轴的值。 二者必选其一 并 或 index: 类似字典或函数 指定axis (
columns: 类似字典或函数 指定axis ( 等同于 axis: 轴到目标与 可以是轴名 默认为 copy: 还要复制底层数据。 inplace: 是否返回一个新的 则忽略copy的值。 level: 对于多索引,只能在指定的级别重命名标签。 errors: 如果 索引或列包含正在转换的索引中不存在的标签时 引发键错误。 如果 额外的键将被忽略。 |
返回值: |
与调用者相同的类型, 但每个轴上的索引均已更改。 |
Raises: |
如果在选定的轴中找不到任何标签, 则为 |
例子,
DataFrame.rename 支持两种调用约定:
(index=index_mapper, columns=columns_mapper, ...)
(mapper, axis={'index', 'columns'}, ...)
强烈建议使用关键字参数来阐明意图。
1)重命名列名
import pandas as pd df = pd.DataFrame({ 'A': [1, 2], 'B': [3, 4] }) df_renamed = df.rename(columns={'A': 'Alpha', 'B': 'Beta'}) print(df_renamed)
2)重命名行索引
import pandas as pd df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]}) df_renamed = df.rename(index={0: "x", 1: "y", 2: "z"}) print(df_renamed)
3)使用函数批量重命名列
import pandas as pd df = pd.DataFrame({ 'a': [1], 'b': [2] }) df_renamed = df.rename(columns=str.upper) print(df_renamed)
4)将索引标签转换为字符串类型
import pandas as pd df = pd.DataFrame({ 'a': [1], 'b': [2] }) print(df.index) # RangeIndex(start=0, stop=3, step=1) print(df.rename(index=str).index)
5)尝试重命名不存在的列,触发 KeyError
import pandas as pd df = pd.DataFrame({ 'a': [1], 'b': [2] }) df.rename(columns={"A": "a", "B": "b", "C": "c"}, errors="raise")