我正在测试熊猫如何保存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文件的单元格中有一些符号字符,因此可能是导致错误的原因。
有些单元格具有这样的数据
例如。
____
Ãznur
-
Håkon
这些影响大熊猫的保存方式吗?
答案 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')
输出-
答案 2 :(得分:0)
因此,我刚刚将to_excel
更改为to_csv
,它可以正常工作。
我不知道为什么它只能保存为csv,但无论如何,我打算以后再将其转换为csv文件。
df.to_excel('TEST.xlsx')
df.to_csv('TEST.csv')