python - Pandas to_csv : ascii can't encode character

标签 python pandas unicode utf-8

我正在尝试读取数据帧并将其写入管道分隔文件。一些字符是非罗马字母(`、ç、ñ 等)。但是,当我尝试将重音符号写为 ASCII 时,它就崩溃了。

df = pd.read_csv('filename.txt',sep='|', encoding='utf-8')
<do stuff>
newdf.to_csv('output.txt', sep='|', index=False, encoding='ascii')

-------

  File "<ipython-input-63-ae528ab37b8f>", line 21, in <module>
    newdf.to_csv(filename,sep='|',index=False, encoding='ascii')

  File "C:\Users\aliceell\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\core\frame.py", line 1344, in to_csv
    formatter.save()

  File "C:\Users\aliceell\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\formats\format.py", line 1551, in save
    self._save()

  File "C:\Users\aliceell\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\formats\format.py", line 1652, in _save
    self._save_chunk(start_i, end_i)

  File "C:\Users\aliceell\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\formats\format.py", line 1678, in _save_chunk
    lib.write_csv_rows(self.data, ix, self.nlevels, self.cols, self.writer)

  File "pandas\lib.pyx", line 1075, in pandas.lib.write_csv_rows (pandas\lib.c:19767)

UnicodeEncodeError: 'ascii' codec can't encode character '\xb4' in position 7: ordinal not in range(128)

如果我将 to_csv 更改为具有 utf-8 编码,那么我将无法正确读取文件:

newdf.to_csv('output.txt',sep='|',index=False,encoding='utf-8')
pd.read_csv('output.txt', sep='|')

> UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb4 in position 2: invalid start byte

我的目标是拥有一个保留重音符号和特殊字符的竖线分隔文件。

此外,是否有一种简单的方法可以找出 read_csv 中断的是哪一行?现在我不知道如何让它向我展示坏角色。

最佳答案

检查答案 here

这是一个更简单的解决方案:

newdf.to_csv('filename.csv', encoding='utf-8')

关于python - Pandas to_csv : ascii can't encode character,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41228697/

相关文章:

python - 使用 Pandas 数据框列中的整数从另一列内的列表中提取特定值

node.js - 如何在 NodeJS 中使用 PDFKit 呈现 unicode 符号?

python - 奇怪的python列出了加法时的行为

python - 在 Python 中临时完全禁用日志记录

python - 每 n 年在 pandas 数据框中分组数据

python - IndexError:用作索引的数组在python中必须为整数(或 bool 值)类型

python - 在 pandas 数据框中以字符串格式对日期进行排序?

python - 找出组内差异最大的组名

string - 当需要快速 (O(1)) 索引时,哪种 Haskell 字符串类型用于 Unicode 数据?

unicode - 什么是 UTF-8 数据的好终止符字节?