将Excel文件从Python读入内存并将工作表传递给Pandas

2024-04-24 10:45:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我想读入一个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")

等等。。。你知道吗

观察每个工作表的读取方式(列和起始行)

现在,这个过程需要相当长的时间。excel文件不是非常大(大约3MB),只有大约1/3的表是有标题的。你知道吗

我正试图找到加速这一进程的方法。等待10秒太多了,因为这个过程必须由用户连续运行。你知道吗

有什么想法吗? 我是这么想的pd.read\U表格每次读取工作表时,代码都会访问光盘,而将excel工作表加载到内存中并从中解析工作表似乎更符合逻辑。那有帮助吗?你是怎么做到的?你知道吗

我还是个初学者,但我听过很多关于并发和并行计算的东西,这对我有帮助吗?你知道吗

谢谢。你知道吗


Tags: 文件数据namedfread过程myfileexcel
1条回答
网友
1楼 · 发布于 2024-04-24 10:45:14

您可以使用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")

相关问题 更多 >