使用pandas读取制表符分隔txt文件时指定sep='\t'报错问题咨询
解决制表符分隔文件读取报错及列合并问题
可能的原因及解决方案
先查看完整报错信息
你提供的报错仅显示调用栈片段,真正的错误原因(如编码错误、解析错误等)通常在后续行里,先获取完整报错内容,能更快定位问题。指定文件编码
Windows环境生成的文本文件常使用GBK/GB2312编码,而pandas默认用UTF-8读取,这会导致解析失败。尝试添加编码参数:import pandas as pd df = pd.read_csv(r"L:\Facility\Dynos\Cell 2 dyno\Quality statistics\2023\quality_stats.txt", sep='\t', encoding='gbk') print(df.columns.tolist())如果GBK无效,可尝试
encoding='latin-1'或'utf-16',根据文件实际编码调整。改用
read_table方法read_table默认以制表符作为分隔符,对这类文件适配性更强:import pandas as pd df = pd.read_table(r"L:\Facility\Dynos\Cell 2 dyno\Quality statistics\2023\quality_stats.txt") print(df.columns.tolist())若仍有问题,同样搭配编码参数使用。
处理混合分隔符或异常行
若文件内存在制表符+空格的混合分隔,或部分行格式异常,可尝试正则分隔符并指定Python引擎(C引擎不支持复杂正则):import pandas as pd df = pd.read_csv(r"L:\Facility\Dynos\Cell 2 dyno\Quality statistics\2023\quality_stats.txt", sep=r'\s+|\t', engine='python') print(df.columns.tolist())也可跳过错误行:
import pandas as pd df = pd.read_csv(r"L:\Facility\Dynos\Cell 2 dyno\Quality statistics\2023\quality_stats.txt", sep='\t', on_bad_lines='skip', encoding='gbk') print(df.columns.tolist())
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

