使用Pandas保存大型Excel文件时出错

时间:2019-08-06 04:46:04

标签: python excel pandas

我正在测试熊猫如何保存excel文件,并在尝试读取并保存大excel文件时出现错误。

因此,我使用了我的大型excel文件中的一小部分示例进行了测试,大约有150行,并且可以正常工作。 所以我用了整张纸,大约200,000行,并且遇到了一些错误

这就是我用来测试保存的

import pandas as pd

xls = pd.ExcelFile('File\\Path\\File.xlsx')
df = pd.read_excel(xls, 'Sheet_Name')

df.to_excel('TEST.xlsx')

这是所有代码,所以我想知道为什么我会出错。

这是控制台报告的内容

File "C:/Users/CSR001/PycharmProjects/CLeaner/Base.py", line 30, in <module>
    df.to_excel('TEST.xlsx')
  File "C:\Users\CSR001\PycharmProjects\CLeaner\venv\lib\site-packages\pandas\core\generic.py", line 2257, in to_excel
    engine=engine,
  File "C:\Users\CSR001\PycharmProjects\CLeaner\venv\lib\site-packages\pandas\io\formats\excel.py", line 739, in write
    freeze_panes=freeze_panes,
  File "C:\Users\CSR001\PycharmProjects\CLeaner\venv\lib\site-packages\pandas\io\excel\_openpyxl.py", line 416, in write_cells
    xcell.value, fmt = self._value_with_fmt(cell.val)
  File "C:\Users\CSR001\PycharmProjects\CLeaner\venv\lib\site-packages\openpyxl\cell\cell.py", line 252, in value
    self._bind_value(value)
  File "C:\Users\CSR001\PycharmProjects\CLeaner\venv\lib\site-packages\openpyxl\cell\cell.py", line 205, in _bind_value
    value = self.check_string(value)
  File "C:\Users\CSR001\PycharmProjects\CLeaner\venv\lib\site-packages\openpyxl\cell\cell.py", line 169, in check_string
    raise IllegalCharacterError
openpyxl.utils.exceptions.IllegalCharacterError

注意:主excel文件的单元格中有一些符号字符,因此可能是导致错误的原因。

有些单元格具有这样的数据

例如。

____
&#xC3;&#x192;znur
-
Håkon

这些影响大熊猫的保存方式吗?

3 个答案:

答案 0 :(得分:0)

问题不是熊猫,而是Excel解析库。这是100%的编码错误。尝试添加以下参数:

encoding='utf8'

答案 1 :(得分:0)

代替使用 read_excel ,而使用 Parse ,它将处理 IllegalCharacterError 异常。

import pandas as pd
path = r"C:\Users\uib05928\Desktop\prac1.xlsx"
xls = pd.ExcelFile(path)
df = xls.parse("Sheet1").head()
df.to_excel('C:\Users\uib05928\Desktop\TEST.xlsx')

输出-

output data

答案 2 :(得分:0)

因此,我刚刚将to_excel更改为to_csv,它可以正常工作。 我不知道为什么它只能保存为csv,但无论如何,我打算以后再将其转换为csv文件。

df.to_excel('TEST.xlsx')
df.to_csv('TEST.csv')