Ошибка Unicode при использовании to_csv DESPITE с указанием кодировки = 'utf-8' - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь записать фрейм данных в CSV-файл следующим образом:

df.to_csv(path, index = True, header = True)

Но я получаю эту ошибку:

SyntaxError: (ошибка Unicode) кодек unicodeescape не может декодировать байты в позиции 2-3: truncated \ UXXXXXXXX escape

Я проверил форумы и увидел, что люди рекомендуют добавлять параметр кодирования вметод to_csv.Поэтому я попробовал это

df.to_csv(path, index = True, header = True, encoding = 'utf-8')

Но я продолжаю получать ту же ошибку!Может кто-нибудь объяснить, как это исправить?

Примечание : Исходные файлы, которые я использовал для создания этого кадра данных, представляли собой смесь файлов CSV, XLS и TXT.Я попытался указать encoding = 'utf-8' для каждого из методов read_csv и read_excel, которые я также использовал, но я все еще получаю ту же ошибку при использовании to_csv.

Вот мои методы чтения:

iap = pd.read_csv(r'C:\Users\revenue.csv', encoding = 'utf-8')

installs = pd.read_excel(r'C:\Users\installs.xlsx', encoding = 'utf-8')

ecpm = pd.read_csv(r'C:\Users\eCPM org.txt', encoding = 'utf-8')

ads = pd.read_csv(r'C:\Users\total_ads_watched.csv', encoding = 'utf-8')

1 Ответ

0 голосов
/ 13 ноября 2018

Следует попробовать с абсолютным путем.

df.to_csv("/home/anand/file.csv", index = True, header = True, encoding = 'utf-8')

Однако стоит посмотреть на строковые литералы

Строковые литералы могутзаключаться в одинарные кавычки (т. е. «...») или в двойные кавычки (т. е. «...»).Они также могут быть заключены в соответствующие группы из трех одинарных или двойных кавычек (обычно они называются строками с тройными кавычками).

Символ обратной косой черты (т. Е.) Используется для экранирования символов, которые в противном случае будут иметь специальныезначение, такое как перевод строки, сам обратный слэш или символ кавычки.Строковые литералы могут дополнительно иметь префикс с буквой r или R. Такие строки называются необработанными строками и используют различные правила для escape-последовательностей с обратной косой чертой.

В строках с тройными кавычками разрешены неэкранированные символы новой строки и кавычки, за исключением того, чтотри неэкранированные кавычки в строке завершают строку.

Если префикс r или R не указан, escape-последовательности в строках интерпретируются в соответствии с правилами, аналогичными тем, которые используются в стандарте C.

...