说明:【白领服务工作室】的文章、微头条以及视频等,都是本工作室在数据处理实际业务中积累的经验和技巧,均经过实际的测试和验证,绝非纸上谈兵的堆文字凑数量。本头条号是将工作室日常数据处理过程中遇到的好的方法、好的思路、好的亮点,呈现给大家,与大家共享。
处理xlsx格式的表格,是我们日常经常会遇到的事情。对于一些几十M、上百M或者几百M的xlsx格式的大表,使用最常用的pandas进行读取时,是一件很费时的事情。尤其是几十个、几百个xlsx格式的大表,要进行读取并处理时,读取的效率就是非常值得关注的。因为,读取太慢,将大大降低我们处理数据的效率。
今天,我们就给大家介绍一种方法,比使用pandas.read_excel()读取xlsx文件的效率要大大提升,速度快了很多。
测试文件是106M的xlsx文件:3.xlsx。
import time
import xlwings as xw
import pandas as pd
t1 = time.time()
wb = xw.Book('d:/fqb/3.xlsx')
t2 = time.time()
print(t2-t1)
如下图所示:
106M的xlsx文件,使用xlwings读取只用了29秒;
转为df数据集,使用了44秒;
总共使用了73秒。
这个速度,比使用pandas的read_excel()或者openpyxl的速度都要快!
提示:
1、参数header=1表示第1行是列名称,参数index=False表示不读取行索引;
2、参数expand='table'表示读取整个表格;
3、106M的xlsx表:上述代码总共使用了73秒;而openpyxl使用了122秒。