python pandas 打开excel很慢?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python pandas 打开excel很慢?相关的知识,希望对你有一定的参考价值。
EXCEL有6个sheet,50M左右,打开每个sheet都要3分钟左右,不符合常理,我估计是EXCEL本身格式的问题,请问有什么解决方法?
df = pd.read_excel('D:\aaaa.xlsx',sheet_name = "1",header=1)
你现度在的代码,首先要从数据库读出,然后要写入df,df可以看做一个内存知数据道库,写入需要做一些相关的处理,例如索引之版类的。
然后又要从df读出,再写入excel,这个步骤是权写入磁盘,也是花费时间最多的。 参考技术A 可以使用其他读取excel库试试,或是转存成其他格式看看,文档共享我可以帮试试追问
一言惊醒梦中人,转成.XLS就好了。谢谢啊
追答哈哈,
本回答被提问者采纳Pandas 无法打开此 Excel 文件
【中文标题】Pandas 无法打开此 Excel 文件【英文标题】:Pandas unable to open this Excel file 【发布时间】:2018-01-25 07:26:37 【问题描述】:我正在尝试使用 python pandas 打开 Excel 文件。代码很简单,如下图;
import pandas as pd
df = pd.read_excel('../TestXLWings.xlsm', sheetname="TestSheet")
下面出现错误;
Traceback (most recent call last):
File "C:\Program Files\JetBrains\PyCharm Community Edition 2017.2\helpers\pydev\pydevd.py", line 1599, in <module>
globals = debugger.run(setup['file'], None, None, is_module)
File "C:\Program Files\JetBrains\PyCharm Community Edition 2017.2\helpers\pydev\pydevd.py", line 1026, in run
pydev_imports.execfile(file, globals, locals) # execute the script
File "C:\Program Files\JetBrains\PyCharm Community Edition 2017.2\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "C:/Users/testing/Dropbox/Test-XLwings/test.py", line 3, in <module>
df = pd.read_excel('../TestXLWings.xlsm', sheetname="TestSheet")
File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\excel.py", line 203, in read_excel
io = ExcelFile(io, engine=engine)
File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\excel.py", line 260, in __init__
self.book = xlrd.open_workbook(io)
File "C:\ProgramData\Anaconda3\lib\site-packages\xlrd\__init__.py", line 441, in open_workbook
ragged_rows=ragged_rows,
File "C:\ProgramData\Anaconda3\lib\site-packages\xlrd\book.py", line 87, in open_workbook_xls
ragged_rows=ragged_rows,
File "C:\ProgramData\Anaconda3\lib\site-packages\xlrd\book.py", line 595, in biff2_8_load
raise XLRDError("Can't find workbook in OLE2 compound document")
xlrd.biffh.XLRDError: Can't find workbook in OLE2 compound document
我的 Excel 文件是 xlsm 并受密码保护。 OLE2 复合文件到底是什么意思? pandas 打开这种 Excel 文件有问题吗?我正在使用 python v3.6
【问题讨论】:
我使用的是 xlrd 1.0.0。这是最新版本。我刚刚做了一个conda update
我之前在受保护的文件方面也遇到过类似的问题。文件上是否有任何保护/锁定?
@ayhan,Excel 文件受密码保护。
我使用this 删除了对文件的保护并读取了文件:我找不到其他解决方案。它只适用于 Windows。
谢谢。我想你已经得到了答案。为了使 xlrd 工作,必须从 Excel 中删除保护。我刚刚发现了另一种打开受保护的 Excel 文件的方法。 xlwings 能够读取受保护的 Excel 文件。我认为 xlwings 是适合我的方式。
【参考方案1】:
我会回答我自己的问题。在 ayhan 的其中一个 cmets 中,xlrd 无法读取受 Excel 保护的文件。一种解决方案是移除保护。
I need the command to unprotect an Excel file from python
读取受 Excel 保护的文件的另一种解决方案是使用 xlwings。我已验证 xlwings 在打开 Excel 文件时能够读取受保护的 Excel 文件。
【讨论】:
以上是关于python pandas 打开excel很慢?的主要内容,如果未能解决你的问题,请参考以下文章
python/django-上传excel文件并用pandas处理
Python 自动化教程 : Excel自动化:使用pandas库
python pandas打开excel语句:pd.ExcelFile(r'D:\demo.xlsx')怎样用一个变量代替文件地址字符串?