duckdb excel插件和rusty_sheet插件在python中的不同表现

  1. 建立虚拟环境
    安装python扩展包duckdb、polars和pandas

    python -m venv pwin313
    pwin313\scripts\activate.bat
    pwin313)C:\d\pwin313>pip install duckdb polars pandas

  2. 在python中引入扩展包,安装加载duckdb插件

    pwin313) C:\d\pwin313>python
    Python 3.13.2 (tags/v3.13.2:4f8bb39, Feb 4 2025, 15:23:48) [MSC v.1942 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.

    import duckdb
    duckdb.sql("install excel")
    duckdb.sql("install rusty_sheet from community")
    import time

    duckdb.sql("load excel")
    duckdb.sql("load rusty_sheet")

rusty_sheet是 v0.4.2版。

分别测试两种插件不转成数据框和转成polars、duckdb数据框

复制代码
>>> t=time.time();duckdb.sql("select * from read_xlsx('/d/lineitem.xlsx')");t1=time.time();print(t1-t)
0.3100736141204834
>>> t=time.time();duckdb.sql("select * from read_xlsx('/d/lineitem.xlsx')").pl();t1=time.time();print(t1-t)
4.7497313022613525
>>> t=time.time();duckdb.sql("select * from read_xlsx('/d/lineitem.xlsx')").fetchdf();t1=time.time();print(t1-t)
4.8916003704071045


>>> t=time.time();duckdb.sql("select * from read_sheet('/d/lineitem.xlsx',range='2:')");t1=time.time();print(t1-t)
4.251304626464844
>>> t=time.time();duckdb.sql("select * from read_sheet('/d/lineitem.xlsx',range='2:')").pl();t1=time.time();print(t1-t)
9.083962440490723
>>> t=time.time();duckdb.sql("select * from read_sheet('/d/lineitem.xlsx',range='2:')").fetchdf();t1=time.time();print(t1-t)
9.565066576004028

可见,read_xlsx不转数据框,则不实际读取数据,而read_sheet读取。

相关推荐
卷无止境9 分钟前
Python 异常处理:从入门到工程实践
后端·python
garuda herb11 分钟前
生成专题页Blog--建立并返回 MySQL 数据库连接
python·mysql
ONE_SIX_MIX15 分钟前
qwenpaw-plugin-file-tools QwenPaw增强文件工具 更新 v1.1.1
python·qwenpaw
AOwhisky19 分钟前
Python 学习笔记(第五期)——组合数据类型:列表、元组、集合与字典精讲——核心知识点自测与详解
开发语言·笔记·python·学习·云计算
2501_9307077826 分钟前
如何使用C#代码在 Excel 中编辑或删除批注
excel
码农学院37 分钟前
GEO与SEO协同:从传统搜索到生成式搜索的平滑迁移路径
服务器·前端·python
程序员羽痕37 分钟前
基于 Django + PyTorch 的中文字体识别系统
pytorch·python·django
灯澜忆梦9 小时前
GO_并发编程---定时器
开发语言·后端·golang
-银雾鸢尾-10 小时前
C#中的StringBuilder相关方法
开发语言·c#
-银雾鸢尾-10 小时前
C#中结构体与类的区别;抽象类与接口的区别
开发语言·c#