问题描述
设法解决了这个问题。
我做了一个遍历具有字符串的列的函数,并设法将它们解码/编码为utf8,现在可以使用了。
def changeencode(data, cols):
for col in cols:
data[col] = data[col].str.decode('iso-8859-1').str.encode('utf-8')
return data
解决方法
我试图在Python熊猫中做一些数据工作,但写出我的结果时遇到麻烦。我将数据读取为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表,我实际上得到了部分打印。“名字”列及其后的所有内容均为空白,但事件,组成部分和电子邮件均已打印。
编辑:尝试以utf8的形式读取csv失败,但以latin1的形式读取它。有没有一种方法可以指定to_excel编码?还是将我的数据帧解码并编码为utf8?