UnicodeDecodeError: кодек utf-8 не может декодировать байт 0xf6 в позиции 125: недопустимый начальный байт в R с Reticulate

Доброе утро, ребята, я писал небольшой скрипт для управления данными в R, но я не понимаю, почему, когда я импортирую огромный файл csv (3,5 ГБ) в R, он не работает. Чтобы быстро решить эту проблему, я решил использовать pandas с reticulate.

#Package from python
pd<-import("pandas", as="pd")
#leggo il file csv con pandas
pd$read_csv("C:\\Users\\Befrancesco\\Desktop\\X_dataset\\x_file_name.csv, error_bad_lines= FALSE, encoding = "utf-8" )

R возвращает мне этот тип ошибки:

Error in py_call_impl(callable, dots$args, dots$keywords) : 
  UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf6 in position 105: invalid start byte 

Где я ошибаюсь?

Заранее спасибо за ваш ответ.

Франческо


person Earl Mascetti    schedule 23.01.2020    source источник
comment
Может быть, во входном csv в позиции 105 есть нечитаемый символ. Вы просматривали некоторые из ваших входных данных? Если ваш файл очень большой, вы можете попробовать что-то вроде этого в Windows PowerShell: stackoverflow.com/a/36836282/5269252   -  person meenaparam    schedule 23.01.2020
comment
@meenaparam Спасибо за ваш ответ. Я хотел бы знать, есть ли у пады возможность пропускать неправильные строки. :)   -  person Earl Mascetti    schedule 23.01.2020
comment
Вы уже используете параметр error_bad_lines, но здесь это не помогает. Мог ли ваш encoding быть здесь чем-то другим? Попробуйте этот ответ и ответ ниже: stackoverflow.com/questions/18171739/   -  person meenaparam    schedule 23.01.2020
comment
Большое спасибо! :) Оно работает! Решение в кодировке =ISO-8859-1   -  person Earl Mascetti    schedule 23.01.2020
comment
Отлично, рад, что решил вашу проблему. Я добавлю что-нибудь в поле для ответов, чтобы мы могли пометить этот вопрос как закрытый.   -  person meenaparam    schedule 23.01.2020


Ответы (1)


Возможно, ваша кодировка не UTF-8. Попробуйте другие кодировки, например ISO-8859-1, в вызове read_csv, например.

pd$read_csv("C:\\Users\\Befrancesco\\Desktop\\X_dataset\\x_file_name.csv, error_bad_lines= FALSE, encoding = "ISO-8859-1")

См. этот ответ для получения дополнительной информации о различных кодировках: https://stackoverflow.com/a/18172249/5269252

person meenaparam    schedule 23.01.2020