Python加载字符串属性失败



我正试图从scipy.io.arff中使用Python的"loadarff"函数加载一个arff文件。该文件具有字符串属性,并给出以下错误。

>>> data,meta = arff.loadarff(fpath)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/data/home/eex608/conda3_envs/PyT3/lib/python3.6/site-packages/scipy/io/arff/arffread.py", line 805, in loadarff
return _loadarff(ofile)
File "/data/home/eex608/conda3_envs/PyT3/lib/python3.6/site-packages/scipy/io/arff/arffread.py", line 838, in _loadarff
raise NotImplementedError("String attributes not supported yet, sorry")
NotImplementedError: String attributes not supported yet, sorry

如何成功读取arff?

由于SciPy的loadarff将arff文件的内容转换为NumPy数组,因此不支持字符串作为属性。在2020年,您可以使用liac-arff包。

import arff
data = arff.load(open('your_document.arff', 'r'))

但是,请确保您的arff文档在有意义的文本之后不包含内联注释。所以不会有这样的输入:

@ATTRIBUTE class {F,A,L,LF,MN,O,PE,SC,SE,US,FT,PO} %Check and make sure that FT and PO should be there

删除注释或将其移动到下一行。

我在一份文件中犯了这样的错误,花了一些时间才弄清楚出了什么问题。

最新更新