基于可配置映射动态重命名Pandas DataFrame列
解决方案
1. 生成列名映射字典
从映射表中提取原列名(FieldName)和目标标准列名(Standard),构建一个用于重命名的字典:
# 构建 {原列名: 目标列名} 的映射关系 col_mapping = dict(zip(mappings_df['FieldName'], mappings_df['Standard']))
运行后得到的字典为:{'Pet': 'Animal', 'Clr': 'Color', 'Snack': 'Food'},完全匹配你的映射规则。
2. 动态替换info_df的列名
使用Pandas的rename()方法,传入上述字典完成列名替换:
# 重命名列,生成新的DataFrame info_df_renamed = info_df.rename(columns=col_mapping)
此时info_df_renamed的列名就变为Animal、Color、Food。
可选扩展
- 若想直接修改原DataFrame而非生成新对象,添加
inplace=True参数:info_df.rename(columns=col_mapping, inplace=True) - 若
info_df存在不在映射规则中的列,且只想保留映射内的列,可先过滤再重命名:info_df_renamed = info_df[col_mapping.keys()].rename(columns=col_mapping)
内容的提问来源于stack exchange,提问作者hotmeatballsoup
相关产品推荐
相关产品推荐

