我想将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纸加载到内存中并从那里解析这些纸似乎更合乎逻辑。有帮助吗?你如何做到的?
我还是一个初学者,但是我听到很多关于并发和并行计算的信息,这对您有帮助吗?
谢谢。
答案 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")