Преобразование файла .arff в .csv с использованием Python - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть файл «LMD.rh.arff», который я пытаюсь преобразовать в файл .csv, используя следующий код:

import pandas as pd
import matplotlib.pyplot as plt
from scipy.io import arff


# Read in .arff file-
data = arff.loadarff("LMD.rh.arff")

Но эта последняя строка кода выдает ошибку-

--------------------------------------------------------------------------- UnicodeEncodeError Traceback (последний вызов был последним) в ----> 1 data =arff.loadarff ("LMD.rp.arff")

~ / .local / lib / python3.6 / site-packages / scipy / io / arff / arffread.py в loadarff (f) 539 ofile =open (f, 'rt') 540 try: -> 541 return _loadarff (ofile) 542 наконец: 543, если ofile не равен f: # только закрыть то, что мы открыли

~ / .local / lib / python3.6 / site-packages / scipy / io / arff / arffread.py в _loadarff (ofile) 627 a = generator (ofile) 628 # Здесь не должно быть ошибок: в противном случае это ошибка -> 629 data = np.fromiter(a, descr) 630 возвращаемых данных, meta 631

UnicodeEncodeError: кодек «ascii» не может кодировать символ «\ xf3» в позиции 4: порядковый номер не в диапазоне (128)

In[6]: data = arff.loadarff ("LMD.rh.arff")

--------------------------------------------------------------------------- UnicodeEncodeError Traceback (последний последний вызов) в ----> 1 data = arff.loadarff("LMD.rh.arff")

~ / .local / lib / python3.6 / site-packages / scipy / io / arff / arffread.py в loadarff (f) 539 ofile = open (f, 'rt') 540 try: -> 541 return _loadarff (ofile) 542 наконец: 543, если ofile не f: # закрыть только то, что мы открыли

~ / .local / lib / python3.6 /site-packages / scipy / io / arff / arffread.py в _loadarff (ofile) 627 a = generator (ofile) 628 # Здесь не должно быть ошибок: в противном случае это ошибка -> 629 data = np.fromiter (a,descr) 630 возвращаемых данных, meta 631

UnicodeEncodeError: кодек «ascii» не может кодировать символ «\ xf3» в позиции 4: порядковый номер не в диапазоне (128)

Youможно скачать файл arff_file

Есть идеи, что не так?

Спасибо!

1 Ответ

0 голосов
/ 12 апреля 2019

Посмотрите на трассировку ошибок

UnicodeEncodeError: кодек 'ascii' не может кодировать символ '\ xf3' в позиции 4: порядковый номер не в диапазоне (128)

Ваша ошибка говорит о том, что у вас есть проблема с кодировкой файла.Попробуйте сначала открыть файл с правильной кодировкой, а затем загрузить его в загрузчик arff

import codecs
import arff

file_ = codecs.load('LMD.rh.arff', 'rb', 'utf-8') # or whatever encoding you have 
arff.load(file_) # now this should be fine

. Для справки см. здесь

...