You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从URL导入文本文件至Pandas DataFrame时出现解析错误的解决方法咨询

解决Pandas读取多空格分隔文本文件的ParserError问题

你遇到的这个ParserError是因为目标文本文件用多个连续空格作为字段分隔符,但你指定的sep=" "只会匹配单个空格,导致Pandas解析时无法正确识别字段边界,出现了行列字段数不匹配的情况。

这里有两个简单有效的解决方案:

方案1:使用delim_whitespace=True参数

这个参数专门用来处理任意数量空白字符(空格、制表符等)作为分隔符的场景,是Pandas针对这类文本文件提供的便捷选项:

import pandas as pd
# 读取文件,自动识别多空格分隔
df = pd.read_csv("http://cs.joensuu.fi/sipu/datasets/s1.txt", index_col=None, delim_whitespace=True)
# 验证列名是否正确
print(df.columns)

方案2:用正则表达式匹配任意空格

如果需要更灵活的分隔符匹配,可以使用正则表达式\s+(匹配一个或多个空白字符)作为分隔符,同时指定engine="python"来避免C引擎对正则的兼容性问题:

import pandas as pd
df = pd.read_csv("http://cs.joensuu.fi/sipu/datasets/s1.txt", index_col=None, sep="\s+", engine="python")
# 查看数据结构验证
print(df.head())

为什么原来的代码会报错?

当你设置sep=" "时,Pandas会把单个空格严格作为分隔符,而文件里的字段之间是多个连续空格,这会让解析器把连续空格之间的空值当成额外的列,或者某一行因为空格分布差异,导致字段数量和其他行不一致,最终触发Expected X fields, saw Y的解析错误。

内容的提问来源于stack exchange,提问作者user3046211

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.01 01:02:50