【发布时间】:2013-09-09 19:45:53
【问题描述】:
我正在尝试在 Python pandas 中进行一些数据工作,但在写出我的结果时遇到了麻烦。 我将我的数据作为 CSV 文件读取,并将每个脚本导出为它自己的 CSV 文件,它工作正常。最近虽然我尝试使用工作表将所有内容导出到 1 个 Excel 文件中,但其中一些工作表给了我一个错误
“'utf8'编解码器无法解码位置1的字节0xe9:无效的继续字节”
我什至不知道如何开始查找可能导致导出到 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()
违规数据帧的打印头
Event ID Constituent ID Email Address First Name \ Last Name
f 1 A A 1
F 4 L R C
M 1 1 A D
F 4 A A G
M 2 0 R G
M 3 O O H
M 2 T E H
M 2 A A H
M 2 M M K
F 3 J E K
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 表我确实得到了部分打印。名字列及以后的任何内容都是空白的,但事件、组成部分和电子邮件都会打印出来。
edit:尝试以 utf8 格式读取 csv 失败,但以 latin1 格式读取它可以。有没有办法指定 to_excel 编码?或者将我的数据帧解码并编码为 utf8?
【问题讨论】:
-
你能发布一些可能有问题的 unicode 字符吗?生成随机的希伯来语字符然后编写它们对我来说没问题。
-
我不知道如何找到它认为令人反感的角色。
-
CSV 不同的一个原因是因为 Excel 导出不是由
pandas完成的,而是由第三方库(xlwt和/或openpyxl)完成的。 -
过去我在将 CSV 文件读入使用 utf8 编码但未指定编码的 Pandas 时遇到过问题。例如尝试 pd.read_csv(input, encoding='utf-8') 和类似的写入。或者,也许您有“latin-1”输入数据 - 似乎在谷歌搜索中弹出您的错误。