[python学习笔记] - 使用pandas与Excel读写包取Excel单元格数据性能分析

背景

有工作需要解析Excel文件数据,需要取Excel文件中一些指定单元格(指定行列)的数据内容。因为Excel文件目前区分为xlsxlsx。全能读写包xlwings虽然能兼顾两种格式,功能齐全,但是太重,操作比较慢,而且必须主动调用关掉Excel文件调用,否则将一直挂在后台。考虑到更轻便的使用,所以分别使用了xlrdxls,使用openpyxlxlsx。但是维护两份代码不太方便,考虑到pandas可以直接读excel两种格式(底层同样是调用对应的包,只是上层做了统一封装),感觉可以更方便些。
但是最终用下来,在单纯取数据方面,dataframe格式的性能并不占优势。

测试方案

测试平台:win10 21H1
配置:AMD 3700X 8核16线程 4.14GHz,32G DDR4 3200MHz
数据文件:4880行,11列的Excel文件。xls格式1100kb,xlsx格式390kb。
随机重复读指定单元格,比较读取耗时。

测试结果

提取数据耗时:

  • pands - iat,13us
  • pands - iloc,14.4us
  • xlrd - sheet.cell,0.447us
  • openpyxl - sheet.cell,0.509us

由测试数据可知,pandas的dataframe取数据性能远远低于直接从Excel取数据。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值