Polars 是使用 Apache Arrow 列格式作为内存模型,使用rust语言实现,目前已经支持python、rust、nodejs编程语言。
polars非标准库实现了多线程、查询优化以及强大的表达式接口,在同样场景的数据分析中效率提高了很多。
开始之前,我们还是一如既往的来安装一下相关的python非标准库。除了这次需要安装的polars,我们安装pandas库来做运行效率上的对比。
下面的测试案例是通过读取excel数据来观察效率的,polars读取excel数据时需要一个额外的python非标准库xlsx2csv。
pip install pandas -i https://pypi.mirrors.ustc.edu.cn/simple/ pip install polars -i https://pypi.mirrors.ustc.edu.cn/simple/ pip install xlsx2csv -i https://pypi.mirrors.ustc.edu.cn/simple/
这里说一下我遇到的坑,本来开始是在windows7上面安装polars的,结果费了好大的劲缺了这个缺那个。最后换到windows10上面直接使用pip一下就安装成功了。
话不多说,下面直接进入正题吧,先将我们测试执行效率需要的python模块导入进来。
import pandas as pd import polars as pl import timeit # 记录时间点的python库
开始处理数据之前我创建了两个data1.xlsx和data2.xlsx的Excel数据文件,接下来通过excel数据的读取时间以及数据合并的执行时间来看看pandas和polars的执行效率。
1、数据读取时间
使用pandas的read_excel函数来读取data1.xlsx中的数据,并记录开始和结束时间。