我正在尝试将这个数据集:COCOMO81转换为arff。
在转换为.arff之前,我正在尝试将其转换为.csv
我跟随这个链接来做这件事。
我从承诺网站得到的数据集。我将整个页面复制为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中看起来像这。
有人能帮助我理解我哪里出了问题,以及如何使用来自承诺存储库的.arff格式的数据集吗?
发布于 2022-11-19 13:30:51
看起来这是一个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)发布于 2022-11-19 12:27:31
首先需要解析txt文件。列名可以在@属性之后使用。
@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", ...])https://stackoverflow.com/questions/74498991
复制相似问题