繁体   English   中英

python熊猫到excel UnicodeDecodeError:'ascii'编解码器无法解码位置11的字节0xe2

[英]Python pandas to excel UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 11

在电子商务网站的网络抓取之后,我将所有数据保存到了pandas数据框中。 好吧,当我尝试将我的熊猫数据框保存到一个excel文件中时,出现以下错误:

Traceback (most recent call last):

File "<ipython-input-7-3dafdf6b87bd>", line 2, in <module>
  sheet_name='Dolci', encoding='iso-8859-1')

File "C:\ProgramData\Anaconda2\lib\site-packages\pandas\core\frame.py", line 
  1466, in to_excel
     excel_writer.save()

File "C:\ProgramData\Anaconda2\lib\site-packages\pandas\io\excel.py", line 
  1502, in save
     return self.book.close()

File "C:\ProgramData\Anaconda2\lib\site-packages\xlsxwriter\workbook.py", 
  line 299, in close
     self._store_workbook()

File "C:\ProgramData\Anaconda2\lib\site-packages\xlsxwriter\workbook.py", 
  line 607, in _store_workbook
     xml_files = packager._create_package()

File "C:\ProgramData\Anaconda2\lib\site-packages\xlsxwriter\packager.py", 
  line 139, in _create_package
     self._write_shared_strings_file()

File "C:\ProgramData\Anaconda2\lib\site-packages\xlsxwriter\packager.py", 
  line 286, in _write_shared_strings_file
     sst._assemble_xml_file()

File "C:\ProgramData\Anaconda2\lib\site-
  packages\xlsxwriter\sharedstrings.py", line 53, in _assemble_xml_file
     self._write_sst_strings()

File "C:\ProgramData\Anaconda2\lib\site-
  packages\xlsxwriter\sharedstrings.py", line 83, in _write_sst_strings
     self._write_si(string)

File "C:\ProgramData\Anaconda2\lib\site-
  packages\xlsxwriter\sharedstrings.py", line 110, in _write_si
     self._xml_si_element(string, attributes)

File "C:\ProgramData\Anaconda2\lib\site-packages\xlsxwriter\xmlwriter.py", 
  line 122, in _xml_si_element
     self.fh.write("""<si><t%s>%s</t></si>""" % (attr, string))

File "C:\ProgramData\Anaconda2\lib\codecs.py", line 706, in write
     return self.writer.write(data)

File "C:\ProgramData\Anaconda2\lib\codecs.py", line 369, in write
     data, consumed = self.encode(object, self.errors)


UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 11: 
ordinal not in range(128)

我使用的代码是这样的:

df.to_excel('my_file.xlsx',sheet_name='Dolci', encoding='iso-8859-1')

但是它不起作用,我什至尝试了:

df.to_excel('my_file.xlsx',sheet_name='Dolci', encoding='utf-8')

但它仍然给我错误。 有人可以帮我解决这个问题吗?

似乎您在ExcelWriter中使用xlsxwriter引擎。 尝试改用openpyxl。

writer = pd.ExcelWriter('file_name.xlsx', engine='openpyxl')
df.to_excel(writer)
writer.save()

有一个to_excel方法的基本参数,请尝试

df.to_excel('filename.xlsx', engine='openpyxl')

它对我有用。

除了@Vadym的响应之外,您可能必须关闭编写器才能获取要创建的文件。

    writer = pd.ExcelWriter(xlPath, engine='openpyxl')
    df.to_excel(writer)
    writer.close()

“取决于二手发动机的性能”

参见: https : //github.com/pandas-dev/pandas/issues/9145这应该是评论,但我没有代表...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM