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

使用Pandas分割.txt文件列时遭遇解析错误,求可行解决方案

解决Pandas读取空格分隔文本文件时的列数不匹配问题

你遇到的核心问题是文本文件中的分隔符不是单一空格,而是任意数量的连续空格——直接用sep=' '会让Pandas把每个空格都当成分隔符,导致某些行因连续空格生成大量空列,触发列数不匹配的错误。

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

方案1:用正则匹配任意空白字符

通过sep='\s+'匹配一个或多个空白字符(包括连续空格、制表符等),同时指定engine='python'确保正则解析正常:

import pandas as pd
adult = pd.read_csv("Adult/dataset_full.txt", header=None, sep='\s+', engine='python')

方案2:使用内置的空白分隔参数

Pandas提供了更简洁的delim_whitespace=True参数,它等价于sep='\s+',专门处理任意数量的空白分隔场景:

import pandas as pd
adult = pd.read_csv("Adult/dataset_full.txt", header=None, delim_whitespace=True)

为什么这两个方法能解决问题?

这两种方式都会自动将任意数量的连续空白字符视为单个分隔符,完美规避了因连续空格导致的列数不一致问题。而你之前用sep=' '时,Pandas会把每个独立空格都当作分隔符——比如一行里如果有两个连续空格,就会生成一个空列,最终导致不同行的列数差异,触发Error tokenizing data错误。

用这两种方法处理你提供的示例数据,都能正确分割成9列,和每行的字段数量完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 08:52:37