我遇到的问题是使用pandas的DataFrame to_csv方法实现csv文件输出,但是遇到中文乱码问题,已验证的正确的方法是:
df.to_csv("cnn_predict_result.csv",encoding="utf_8_sig")
-----------------------------------------------------------------------------------------------------------------------------------------------------
转载:
使用python2处理中文时,经常会出现乱码问题,之前使用Python处理中文csv文件时,处理过程程序输出出现了乱码,最后在程序中能够正常显示出中文,但是导出文件时,使用excel打开出现了中文乱码问题,但是使用ultraedit打开时,能正常显示。现在找到了问题的所在,总结如下:
1)程序输出中出现乱码的原因是因为python2中中文编码的问题,需要注意的是要将处理的中文文件的编码和python源文件的编码保持一致,这样不会出现中文乱码。可以参考这两篇文章关于Python脚本开头两行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定和Python中用encoding声明的文件编码和文件的实际编码之间的关系
2)在程序中能够正常输出中文,但是导出到文件后使用excel打开是出现中文乱码是因为excel能够正确识别用gb2312、gbk、gb18030或utf_8 with BOM 编码的中文,如果是utf_8 no BOM编码的中文文件,excel打开会乱码。
根据以上两点,结合自己的情况:我使用的是jupyter的ide,创建的python源文件为utf8 no BOM格式的编码,而要处理的csv文件是用gbk编码的,所以我需要将使用gbk编码的csv文件转为utf_8编码。
使用上面的代码能够将使用GBK编码的文件转为UTF8编码的文件。接下来就是真正处理csv文件了。
处理csv文件:
将data导出到文件中:
使用excel打开result_utf8_no_bom.csv和result_utf8_with_bom.csv,发现能够正确识别result_utf8_with_bom.csv文件
转自:http://blog.csdn.net/xw_classmate/article/details/51940430