Python如何基于CSV查找表替换Pandas DataFrame列名中的指定子串
实现方案
第一步:构建替换映射字典
先读取存储替换规则的CSV文件,将FIND列和REPLACE列转换为键值对字典:
import pandas as pd import re # 处理正则特殊字符时需要 # 读取替换规则CSV rule_df = pd.read_csv("mycsv.csv") # 生成替换字典 replace_dict = dict(zip(rule_df["FIND"], rule_df["REPLACE"])) # 可选优化:按查找字符串长度倒序排序,避免短字符串先匹配破坏更长的匹配项 replace_dict = dict(sorted(replace_dict.items(), key=lambda x: len(x[0]), reverse=True))
第二步:批量替换DataFrame列名
利用pandas列名的字符串替换方法批量匹配替换:
# 构建正则匹配规则,先对特殊字符转义避免匹配异常 match_pattern = "|".join(re.escape(key) for key in replace_dict.keys()) # 执行替换 df.columns = df.columns.str.replace(match_pattern, lambda match: replace_dict[match.group()], regex=True)
执行完成后,df的列名就会按照给定规则完成替换,和预期输出一致。
内容的提问来源于stack exchange,提问作者YellowSunshine
相关产品推荐
相关产品推荐

