如何移除Pandas DataFrame列名中的'、"等特殊字符及读取对应文件
解决方案
一、读取包含特殊字符列名的文件
Pandas 可以直接读取列名含单/双引号的文件,无需额外特殊配置。以 CSV 文件为例,直接使用 read_csv 即可完整保留原始列名:
import pandas as pd df = pd.read_csv("your_data_file.csv")
如果文件中列名的引号存在转义问题(比如用双引号包裹列名且内部含单引号),可通过指定 quoting 参数确保正确读取:
# 当列名被双引号包裹时使用 df = pd.read_csv("your_data_file.csv", quoting=1) # quoting=1 对应 csv.QUOTE_ALL
二、清理DataFrame中的特殊字符列名
针对已加载的 DataFrame,可通过字符串处理方法批量移除列名首尾及内部的单/双引号:
方法1:自定义清理函数
def clean_column_name(col): # 先移除首尾的单双引号,再替换掉中间所有的单双引号 cleaned = col.strip('\'"') return cleaned.replace('\'', '').replace('"', '') # 应用到所有列名 df.columns = df.columns.map(clean_column_name)
方法2:正则表达式批量替换
用正则表达式一次性匹配并移除所有单/双引号,代码更简洁:
df.columns = df.columns.str.replace(r'[\'"]', '', regex=True)
如果只想移除首尾的引号、保留中间内容(若有需求),可使用:
df.columns = df.columns.str.strip('\'"')
测试验证
针对你提供的示例列名,清理后结果如下:
est_soilty_Gh''→est_soilty_Ghupd_siffer_Kh'g→upd_siffer_Khgiest_soilty_M'''→iest_soilty_M
内容的提问来源于stack exchange,提问作者YIF99
相关产品推荐
相关产品推荐

