python xlrd pandas 区别_python读取excel xlrd和pandas区别?

我现在写一个程序处理各种不同来源的Excel文件,有时会面临这样一种场景:某个sheet中只有几十行有数据,后面的空白行填满了1048553(xlsx文件最大行数1048576)行。因为不能修改源文件,同时这些文件只需要读一次所以没必要预处理。我用openpyxl、pandas、xlrd(2.0版本不再支持xlsx文件,因此我用的1.2版本)、xlwings分别读取测试性能,结果如下:

openpyxl读取得到1048553行,耗时32秒

pandas读取得到1048553行(包括表头行),耗时49秒

xlrd读取得到63行,耗时15秒(将xlrd获取的数据用遍历方式读入list再转化为DataFrame的操作,耗时微秒级)

xlwings读取得到1048553行,耗时6秒(将xlwings获取的数据用expand方法读入list可以获得正确的行数,再转化为DataFrame的操作,耗时毫秒级)

后来找了另一个文件测试,该sheet的特点是每一行都非空,但大部分行只有几个关键列有数据,xlwings的expand方法一旦遇到某一行第一个单元格为空就停止读取,导致并不能得到完整数据

用xlrd需要自己分析表格结构,好处是适用性强,可以通过遍历来得到多层表头结构,后期导入pandas也方便快捷;pandas会自动将第一行视为表头,表头后面的行全部视为数据,应该是无法理解你的多层表头结构的

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值