[英]Getting "ParserError" when I try to read a .txt file using pd.read_csv()
我正在尝试将此数据集: COCOMO81转换为 arff。
在转换为.arff之前,我试图将其转换为.csv
我正在关注此链接来执行此操作。
我从 promise 站点获得了该数据集。 我将整个页面作为 cocomo81.txt 复制到记事本,现在我正在尝试使用 python 将 cocomo81.txt 文件转换为 .csv。(我打算稍后使用 weka 将 .csv 文件转换为 .arff)
但是,当我跑步时
import pandas as pd
read_file = pd.read_csv(r"cocomo81.txt")
我得到这个ParserError。
为了解决这个问题,我遵循了这个解决方案并将我的命令修改为
read_file = pd.read_csv(r"cocomo81.txt",on_bad_lines='warn')
我收到了一堆警告 - 你可以在这里看到它的样子
然后我跑了read_file.to_csv(r'.\cocomo81csv.csv',index=None)
但似乎对 ParserError 的修复在我的情况下不起作用,因为我的 cocomo81csv.csv 文件看起来像 Excel 中的THIS 。
有人可以帮助我了解我哪里出错了,以及如何使用 promise 存储库中的 .arff 格式数据集?
您首先需要解析 txt 文件。 @attribute 之后可以取列名
@attribute rely numeric
@attribute data numeric
@attribute cplx numeric
@attribute time numeric
..............................
而在csv文件中,只加载文件末尾@data之后的数据。 您可以复制/粘贴。
0.88,1.16,0.7,1,1.06,1.15,1.07,1.19,1.13,1.17,1.1,1,1.24,1.1,1.04,113,2040
0.88,1.16,0.85,1,1.06,1,1.07,1,0.91,1,0.9,0.95,1.1,1,1,293,1600
1,1.16,0.85,1,1,0.87,0.94,0.86,0.82,0.86,0.9,0.95,0.91,0.91,1,132,243
0.75,1.16,0.7,1,1,0.87,1,1.19,0.91,1.42,1,0.95,1.24,1,1.04,60,240
...................................................................
然后读取生成的 csv 文件
pd.read_csv(file, names=["rely", "data", "cplx", ...])
看起来它是一个 csv 文件,第一行是注释。 注释行由%
字符和@
(?) 表示,实际的 csv 数据从第 230 行开始。
您应该跳过第一行并手动设置列名,尝试这样的事情:
# set column names manually
col_names = ["rely", "data", "cplx", "time", "stor", "virt", "turn", "acap", "aexp", "pcap", "vexp", "lexp", "modp", "tool", "sced", "loc", "actual" ]
filename = "cocomo81.arff.txt"
# read csv data
df = pd.read_csv(filename, skiprows=229, sep=',', decimal='.', header=None, names=col_names)
print(df)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.