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

时间:2019-10-19 21:22:00

标签: python excel pandas dataframe

我想将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_excel时,代码每次都会读取光盘以读取一张纸,而将excel纸加载到内存中并从那里解析这些纸似乎更合乎逻辑。有帮助吗?你如何做到的?

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

谢谢。

1 个答案:

答案 0 :(得分:0)

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