[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取数据。
[python学习笔记] - 使用pandas与Excel读写包取Excel单元格数据性能分析_第1张图片

你可能感兴趣的:(Python,性能分析,学习笔记,python,数据挖掘,开发语言,性能分析)