如何用Pandas去除Excel表头特殊字符并解决Unicode编码错误
解决Pandas读取含特殊字符Excel列名的编码错误及去除特殊符号方法
问题根源
报错是因为ASCII编码无法解析Unicode字符≤,导致Pandas处理列名时抛出编码异常。以下是两种直接有效的解决方法:
方法一:读取后批量清理列名
先正常读取文件(若读取时仍报错,需指定engine='openpyxl'适配xlsx格式),再批量替换列名中的≤符号:
import pandas as pd # 读取Excel文件 df = pd.read_excel('目标文件.xlsx', engine='openpyxl') # 移除列名中的≤符号 df.columns = [col.replace('≤', '') for col in df.columns]
方法二:先处理表头再读取数据
如果读取时直接触发编码错误,可先单独读取表头并清理,再用处理后的表头加载数据:
import pandas as pd # 读取第一行作为原始表头 header = pd.read_excel('目标文件.xlsx', nrows=0).columns.tolist() # 清理表头中的≤符号 cleaned_header = [col.replace('≤', '') for col in header] # 使用清理后的表头读取完整数据 df = pd.read_excel('目标文件.xlsx', header=0, names=cleaned_header, engine='openpyxl')
扩展:批量清理所有非ASCII特殊字符
如果需要移除所有类似的非ASCII特殊字符,可借助正则表达式:
import pandas as pd import re df = pd.read_excel('目标文件.xlsx', engine='openpyxl') # 移除所有非ASCII范围内的字符 df.columns = [re.sub(r'[^\x00-\x7F]+', '', col) for col in df.columns]
内容的提问来源于stack exchange,提问作者hampi2017
相关产品推荐
相关产品推荐

