将pandas df写入csv时出现Unicode编码错误

时间:2015-07-10 02:09:04

标签: python pandas export-to-csv python-unicode

我清理了400个excel文件并使用pandas将它们读入python并将所有原始数据附加到一个大df中。

然后当我尝试将其导出到csv:

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

我收到此错误:

UnicodeEncodeError: 'ascii' codec can't encode character u'\xc7' in position 20: ordinal not in range(128)

有人可以建议一种方法来解决这个问题及其意义吗?

由于

2 个答案:

答案 0 :(得分:57)

您的DataFrame中有unicode个值。文件存储字节,这意味着所有unicode必须先编码为字节,然后才能存储在文件中。您必须指定编码,例如utf-8。例如,

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

如果您未指定编码,则df.to_csv使用的编码默认为Python2中的ascii或Python3中的utf-8

答案 1 :(得分:10)

添加答案以帮助我自己稍后谷歌:

帮助我的一个技巧是首先对有问题的系列进行编码,然后将其解码回utf-8。像:

{{1}}

这样也可以正确打印数据帧。