I a*_*rge 28 python export-to-csv pandas python-unicode
我清理了400个excel文件并使用pandas将它们读入python并将所有原始数据附加到一个大df中.
然后,当我尝试将其导出到csv时:
df.to_csv("path",header=True,index=False)
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xc7' in position 20: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
有人可以建议一种方法来解决这个问题及其意义吗?
谢谢
unu*_*tbu 59
您unicode的DataFrame中包含值.文件存储字节,这意味着所有文件都unicode必须先编码为字节,然后才能存储在文件中.您必须指定编码,例如utf-8.例如,
df.to_csv('path', header=True, index=False, encoding='utf-8')
Run Code Online (Sandbox Code Playgroud)
如果您没有指定编码,那么df.to_csv默认情况下使用的编码ascii在Python2或utf-8Python3中.
tan*_*ius 14
添加答案以帮助自己稍后谷歌搜索:
帮助我的一个技巧是首先编码有问题的系列,然后将其解码回utf-8.喜欢:
df['crumbs'] = df['crumbs'].map(lambda x: x.encode('unicode-escape').decode('utf-8'))
Run Code Online (Sandbox Code Playgroud)
这样也可以正确打印数据帧.