Python pandas to_excel'utf8'编解码器无法解码字节

我正在尝试在Pythonpandas中做一些数据工作,并且无法写出我的结果。 我读取我的数据作为一个CSV文件,并导出每个脚本,因为它是自己的CSV文件,工作正常。 最近虽然我已经尝试导出1 Excel文件中的所有工作表和一些表单给我一个错误

“'utf8'编解码器无法解码位置1中的字节0xe9:无效的继续字节”

我不知道如何甚至开始find任何可能导致出口到Excel问题的字符。 不知道为什么它出口到CSV只是罚款:

相关线路

from pandas import ExcelWriter data = pd.read_csv(input) writer = ExcelWriter(output) #output is just the filename fundraisers.to_excel(writer, "fundraisers") locations.to_excel(writer, "locations") #error locations.to_csv(outputcsv) #works writer.save() 

打印头的问题dataframe

 Event ID Constituent ID Email Address First Name \ Last Name f 1 AA 1 F 4 LRC M 1 1 AD F 4 AAG M 2 0 RG M 3 OOH M 2 TEH M 2 AAH M 2 MMK F 3 JEK Location ID raised raised con raised email a 0 0 0 a 8 0 0 o 0 0 0 o 0 0 0 o 0 0 0 t 5 0 0 o 1 0 0 o 6 a 0 o 6 0 0 d 0 0 0 

看着excel表格,我确实得到了部分打印出来。 名字栏中的任何内容都是空白的,但是事件,组件和电子邮件都是打印的。

编辑:试图阅读csv作为utf8失败,但阅读它作为拉丁文的作品。 有没有办法指定to_excel编码? 或解码和编码我的dataframe到UTF8?

pipe理解决这个问题。

我做了一个函数,通过我的列有string,并设法解码/编码为utf8,现在它的作品。

 def changeencode(data, cols): for col in cols: data[col] = data[col].str.decode('iso-8859-1').str.encode('utf-8') return data 

在我的情况下,问题是我最初阅读错误的编码( ASCII代替cp1252 )的CSV文件。 因此,pandas在试图将其写入Excel文件时,发现一些字符无法解码。

我在读取CSV文件时通过指定正确的编码来解决这个问题。

 data = pd.read_csv(fname, encoding='cp1252') 

实际上,通过传递一个参数给ExcelWriter,可以强制执行utf8编码:

  ew = pandas.ExcelWriter('test.xlsx',options={'encoding':'utf-8'}) sampleList = ['Miño', '1', '2', 'señora'] dataframe = pandas.DataFrame(sampleList) dataframe.to_excel(ew) ew.save() 

最简单的事情是在utf-8中加载你的数据框。 然后它ExcelWriter将保存它没有问题。

 data = pd.read_csv(path,encoding='utf-8') 

不知道什么时候会被释放,但你可以尝试使用我的github存储库:

https://github.com/jtornero/pandas

你可以克隆它,并从源代码构buildpandas; 这个问题几乎解决了,它的工作原理就像

 sampleList = ['Miño', '1', '2', 'señora'] dataframe = pandas.DataFrame(sampleList) ew = pandas.ExcelWriter('./test.xls', encoding='utf-8') dataframe.to_excel(ew) ew.save() 

干杯

豪尔赫Tornero

我一直在得到同样的错误,并且在所有的build议中,唯一对我有效的是:

 data = pd.read_csv('Filename.csv', encoding='cp1252') 

非常感谢你!