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

使用pd.read_csv读取COCOMO81文本文件遇ParserError,转CSV异常求助

问题原因与解决方案

问题原因

  • 你保存的cocomo81.txt并非纯ARFF数据集:复制网页内容会混入网页HTML代码、导航栏等冗余内容,完全不符合ARFF格式规范,也不是CSV结构,导致pandas解析失败。
  • 错误使用CSV解析器处理ARFF:ARFF是机器学习专用数据集格式,包含@relation、@attribute、@data等专属标记,和逗号分隔的CSV结构完全不同。用pd.read_csv直接读取必然解析混乱,添加on_bad_lines='warn'只是跳过错误行,最终得到的是残缺且格式错乱的数据,因此Excel显示异常。

正确使用ARFF数据集的步骤

1. 获取正确的ARFF文件

直接从promise仓库下载原始的COCOMO81.arff文件,不要复制网页内容,确保文件是纯ARFF格式的原始数据集。

2. 用专用库解析ARFF并转换为CSV

Python中处理ARFF最常用的是liac-arff库,操作步骤如下:

  • 安装依赖库:
pip install liac-arff
  • 解析并转换的代码:
import arff
import pandas as pd

# 读取原始ARFF文件
with open('COCOMO81.arff', 'r', encoding='utf-8') as f:
    arff_data = arff.load(f)

# 转换为DataFrame,提取属性名作为列名
df = pd.DataFrame(arff_data['data'], columns=[attr[0] for attr in arff_data['attributes']])

# 保存为标准CSV文件
df.to_csv('cocomo81.csv', index=False, encoding='utf-8')

生成的CSV文件可直接用Excel正常打开,数据结构完全正确。

备选方案:用SciPy解析

若已安装SciPy库,也可使用其内置的ARFF解析工具:

from scipy.io import arff
import pandas as pd

# 读取ARFF文件
data, meta = arff.loadarff('COCOMO81.arff')

# 转换为DataFrame并处理字节型字符串
df = pd.DataFrame(data)
df = df.applymap(lambda x: x.decode('utf-8') if isinstance(x, bytes) else x)

# 保存为CSV
df.to_csv('cocomo81.csv', index=False, encoding='utf-8')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 05:10:49