当前位置: 首页 > 面试题库 >

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

宋昕
2023-03-14
问题内容

我试图在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?


问题答案:

设法解决了这个问题。

我做了一个遍历具有字符串的列的函数,并设法将它们解码/编码为utf8,现在可以使用了。

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


 类似资料:
  • 问题内容: 我有一个套接字服务器,应该从客户端接收UTF-8有效字符。 问题是某些客户端(主要是黑客)正在通过它发送所有错误的数据。 我可以轻松地区分真正的客户端,但是我会将所有发送的数据记录到文件中,以便以后进行分析。 有时我会得到这样的导致错误的字符。 我需要能够使带有或不带有这些字符的字符串UTF-8。 更新: 对于我的特殊情况,套接字服务是MTA,因此我只希望接收ASCII命令,例如: 我

  • 我有一个套接字服务器,它应该从客户端接收UTF-8有效字符。 问题是一些客户端(主要是黑客)正在通过它发送所有错误类型的数据。 我可以很容易地分辨出真正的客户机,但我会将发送的所有数据记录到文件中,以便以后进行分析。 有时我会遇到这样的字符,导致UnicodeDecodeError错误。 我需要能够使字符串UTF-8有或没有这些字符。 更新: 对于我的特殊情况,套接字服务是MTA,因此我只希望接收

  • 问题内容: 我有一个套接字服务器,应该从客户端接收UTF-8有效字符。 问题是某些客户端(主要是黑客)正在通过它发送所有错误的数据。 我可以轻松地区分真正的客户端,但是我会将所有发送的数据记录到文件中,以便以后进行分析。 有时我会收到这样的字符œ,从而导致错误。 我需要使字符串UTF-8带有或不带有这些字符。 更新: 对于我的特殊情况,套接字服务是MTA,因此我只希望接收ASCII命令,例如: 我

  • 我试图在Python pandas中做一些数据工作,但在写出结果时遇到了麻烦。我以CSV文件的形式读取数据,并将每个脚本导出为它自己的CSV文件,这很好地工作。虽然最近我试着用工作表导出一个Excel文件中的所有内容,但有几个工作表给了我一个错误 “'UTF8'编解码器无法解码位置1中的字节0xE9:无效的连续字节” 我甚至不知道如何开始查找任何可能导致导出到Excel的问题的字符。不知道为什么它

  • 问题内容: 当上传具有非ASCII字符的文件时,出现UnicodeEncodeError: 我使用MySQL,nginx和FastCGI运行Django 1.2。 根据Django Trac数据库,这是已解决的问题,但是我仍然有问题。欢迎提供有关如何修复的任何建议。 编辑:这是我的图像字段: 问题答案: 在对此进行更多调查之后,我发现我尚未在我的主要Nginx配置文件中设置字符集: 通过添加以上内

  • 问题内容: 我正在尝试检查许多网站的页面上是否有某个单词。该脚本可以在15个站点上正常运行,然后停止。 UnicodeDecodeError:’utf8’编解码器无法解码位置15344处的字节0x96:无效的起始字节 我在stackoverflow上进行了搜索,发现了很多问题,但似乎无法理解我的情况出了什么问题。 我想解决它,或者如果有错误,请跳过该站点。请为我提供新手建议,下面的代码本身花了我一