Не получается подгрузить файл csv с помощью numpy, в чем ошибка?
Добрый день!
У меня на обучении была следующая задача:
Загрузите какой-либо файл с данными (таблица Excel с Вашего компьютера, сохраненная в формате csv, или таблица из Интернета).
Не получается подгрузить файл csv при помощи numpy:
table = np.loadtxt('Dlya_ucheby.csv' , delimiter = ' , ' , skiprows=1)
выходит следующая ошибка:
UnicodeDecodeError Traceback (most recent call last) in () —--> 1 table = np.loadtxt('Dlya_ucheby.csv', delimiter = ',', skiprows=1)
1 frames /usr/lib/python3.7/codecs.py in decode(self, input, final) 320 # decode input (taking the buffer into account) 321 data = self.buffer + input —> 322 (result, consumed) = self.bufferdecode(data, self.errors, final) 323 # keep undecoded input until the next call 324 self.buffer = data[consumed:]
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xed in position 0: invalid continuation byte
Подскажите что именно пошло не так?
Ранее задавала этот вопрос в курсе в котором обучаюсь куратору, посоветовали двоеточие выбрать разделителем и указать кодировку, но это в другой библиотеке кажется, до изучения которой еще не дошла:
table = pd.read_csv('Dlya_ucheby.csv', encoding = 'cp1251', sep = ';')
data.head()
Подскажите как решить проблему именно с помощью numpy
Ранее задавала этот вопрос в курсе в котором обучаюсь куратору, посоветовали двоеточие выбрать разделителем и указать кодировку, но это в другой библиотеке кажется, до изучения которой еще не дошла:
3 frames
/usr/local/lib/python3.7/dist-packages/numpy/lib/npyio.py in floatconv(x)
761 if '0x' in x:
762 return float.fromhex(x)
--> 763 return float(x)
764
765 typ = dtype.type
ValueError: could not convert string to float: '207401;2013;41327;0'
Хотя данные в файле могут быть любыми, как я поняла, или есть ограничения? первую строку специально пропустила т к там название столбцов. Файл представляет из себя обычную таблицу.
Подскажите, а почему именно delimiter = ';' а не ', '?
ну а какой тут разделитель:
'207401;2013;41327;0'
?
Новая проблема из-за десятичного разделителя - у вас запятая, ожидается точка. Настроить это в питоне я легкого способа не вижу, так что пересохраняйте CSV файл с другим десятичным разделителем (я не помню, настраивается это как-то в Excel или же он берет из системных настроек Windows, вроде второе)
3 frames
/usr/local/lib/python3.7/dist-packages/numpy/lib/npyio.py in floatconv(x)
761 if '0x' in x:
762 return float.fromhex(x)
--> 763 return float(x)
764
765 typ = dtype.type
ValueError: could not convert string to float: '0,58'
ну а какой тут разделитель:
'207401;2013;41327;0'
?
Новая проблема из-за десятичного разделителя - у вас запятая, ожидается точка. Настроить это в питоне я легкого способа не вижу, так что пересохраняйте CSV файл с другим десятичным разделителем (я не помню, настраивается это как-то в Excel или же он берет из системных настроек Windows, вроде второе)