首页 > 解决方案 > 将 Python 中的 Excel 文件读入内存并将工作表传递给 Pandas

问题描述

我想读入几个熊猫数据框,很多张excel文件。

到目前为止,我使用:

myfile           = filename
myfilecomplete = os.path.join(mypath,myfile)
df_data=pd.read_excel(myfilecomplete, sheet_name='DATA',skiprows=4, indexcol=1,usecols="A:i")

Excel 文件中大约有 10 张表格可供读取。所以我重复最后一行 10 次,适用于每张纸:

df_data2=pd.read_excel(myfilecomplete, sheet_name='Whatever',skiprows=3, indexcol=1,usecols="A:O")

ETC...

观察每张纸的读取方式不同(列和起始行)

现在,这个过程需要相当长的时间。excel 文件不是很大(大约 3MB),只有大约 1/3 的表格带有标题。

我正在努力寻找加速这一过程的方法。等待 10 秒太多了,因为这个过程必须由用户连续运行。

有任何想法吗?我认为使用 pd.read_excel 代码每次都访问磁盘以读取工作表,而将 excel 工作表加载到内存中并从那里解析工作表似乎更合乎逻辑。那会有帮助吗?你怎么做呢?

我仍然是初学者,但我听到很多关于并发和并行计算的信息,这对我有帮助吗?

谢谢。

标签: pythonexcelpandasdataframe

解决方案


您可以一次读取整个文件,ExcelFile然后从中读取各个工作表。

xlFile = pd.ExcelFile(myfilecomplete)
df_data = pd.read_excel(xlFile, sheet_name='DATA',skiprows=4, indexcol=1,usecols="A:i")
df_data2 = pd.read_excel(xlFile, sheet_name='Whatever',skiprows=3, indexcol=1,usecols="A:O")

推荐阅读