Как экспортировать фрейм данных pandas, содержащий строки с акцентированными символами, в файл CSV без получения каких-либо дополнительных символов в выходном файле?

#python-3.x #pandas #export-to-csv #diacritics #non-ascii-characters

#python-3.x #pandas #экспорт в csv #диакритические знаки #символы, отличные от ascii

Вопрос:

Я пытался экспортировать фрейм данных pandas, который содержит акцентированные символы в нескольких столбцах, в csv. При печати в записной книжке IPython строка выглядит просто отлично.
например, фрейм данных выглядит следующим образом:

   col1 col2
1 001  Éxamplé
  

но когда я экспортирую фрейм данных в CSV с помощью df.to_csv функции, использующей кодировку ‘utf-8’, вывод в файле CSV выглядит следующим образом:

   col1 col2
1 001  Éxamplé
  

в то время как желаемый результат:

   col1 col2
1 001  Éxamplé
  

Как мы можем это сделать без изменения символов?

Комментарии:

1. В моей системе это работает нормально

2. Вам удалось это сделать?

Ответ №1:

Это должно сработать в большинстве случаев.

 data.to_csv("Data.csv", encodin&="utf-8")
  

Но действительно сложно сказать, что вам нужно, не зная специфики. Текст на иностранном языке? Какое программное обеспечение вы используете для просмотра файла после его сохранения? Это может быть связано с этим программным обеспечением, а не с самим файлом.
Не забудьте здесь ознакомиться со стандартной кодировкой pythons.

Комментарии:

1. Я использую ту же строку кода, что и вы, и я использую MS Excel для просмотра файлов.

2. Я быстро протестировал, и мне кажется, что проблема в Excel. Попробуйте открыть файл с помощью pandas. Нормально ли это выглядит? Если да, то проблема связана с Excel. попробуйте это: it&.ias.edu/content / … Приветствия!

3. С pandas все выглядит нормально. Я вижу, что строка именно такая, как я хочу в IPython NB. но когда я открываю файл Excel, она изменяется. Согласно вашему предложению я попытался использовать функцию ‘utf8_decode()’ в Excel, но в Excel 2016 такой функции нет. Спасибо 🙂

4. Извините, я не эксперт в Excel 🙂 возможно, эта ссылка поможет? it&.ias.edu/content / …

Ответ №2:

 df.to_csv(filename,encodin&='utf-8-si&')
  

Попробуйте этот режим, у меня это работает.