You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过另一张Pandas DataFrame为目标DataFrame重命名列名

Pandas DataFrame 列名按映射表重命名方案

核心逻辑就是你推测的字典映射方案,总共两步即可实现需求:

  • 第一步:将存储映射关系的df_B转换为列名字典
    代码:col_map = df_B.set_index('keys')['names'].to_dict()
    执行后得到的字典结构为 {'a': 'X', 'b': 'Y', 'x': 'Z'},完全符合rename方法的入参要求。
  • 第二步:调用rename方法对df_A的列名做批量重命名,生成目标df_C
    代码:df_C = df_A.rename(columns=col_map)

完整可运行测试代码

import pandas as pd
# 构造示例df_A
df_A = pd.DataFrame(
    data={'a': [65,26,47], 'b': [12,1,5], 'x': [1,5,6]},
    index=pd.to_datetime(['2017-11-01','2017-11-02','2017-11-03'])
)
df_A.index.name = 'date'

# 构造示例df_B
df_B = pd.DataFrame(
    data={'keys': ['a','b','x'], 'names': ['X','Y','Z']}
)

# 执行重命名操作
col_map = df_B.set_index('keys')['names'].to_dict()
df_C = df_A.rename(columns=col_map)

# 输出验证结果
print(df_C)

补充说明

rename方法默认会自动忽略映射字典中不存在于df_A列名的键,不会报错,如果你需要确保所有df_A的列都被覆盖映射,可以自行加校验逻辑。

内容的提问来源于stack exchange,提问作者drango

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 12:39:01