龙空技术网

如何加快python导入excel的速度?

暖暖爸爸的小天地 115

前言:

如今姐妹们对“python多线程处理excel”可能比较珍视,小伙伴们都想要学习一些“python多线程处理excel”的相关文章。那么小编同时在网络上搜集了一些关于“python多线程处理excel””的相关知识,希望各位老铁们能喜欢,看官们一起来了解一下吧!

在工作中,要分析数据,必须先获取数据。在部分公司里,内部管理系统导出的数据只能是excel格式,不能是csv等其他格式,而excel转化为csv格式也需要时间,所以用python分析时直接分析excel格式的数据较为方便。这就带来另一个问题,python导入excel的速度比较慢,对于比较大和多的excel,导入速度简直无法忍受,那有什么办法可以加快python导入excel的速度呢?答案是有,这里介绍一种简单的方法。

之前的一篇文章中介绍过python导入Excel的方法(合并excel表格(使用python))。由于python的“全局解释器锁”(Global Interpreter Lock,GIL),导致在同一进程内任何时刻仅有一个线程在执行,也就是只能串行,所以,之前文章中的导入方法是一个excel接一个excel导入。如果能同时读取多个excel,那么导入excel的速度不就提升了吗?(单个Excel读取速度无法提升。)python有一个模块,可以利用多核CPU的功能,实现多进程并行读取,从而加快速度。比如原来串行导入20个excel,时间是20分钟,那么4核CPU电脑,每个核心都会同时导入excel.如果每个excel的大小差不多,那么并行只要大致5分多钟就完成导入了。接下来用我的电脑测评一下,我的电脑是双核CPU,具体如下:

一、准备数据

准备如图两个工作簿,每个工作簿里有一个sheet。

二、用串行方法导入数据

(一)代码

(二)结果

三、用并行方法导入数据

(一)代码

(二)结果

四、总结

可以看出,并行耗时1分46秒,串行耗时2分26秒(我用的是双核CPU),可以看出导入时间明显缩短了,如果CPU数量更多,则导入时间会更短。具体的代码在随后的文章中解释。

标签: #python多线程处理excel