Pandas是数据科学中必不可少的Python库。但其最大的缺点是对大型数据集的操作速度较慢。Polars是一种旨在更快地处理数据的Pandas替代方案。,本文简要介绍了Polars Python包,并将其与流行的数据科学库Pandas在语法和速度方面进行了比较。,本文的相关代码可在Kaggle Notebook中找到,链接如下:https://www.kaggle.com/code/iamleonie/pandas-vs-polars,根据Polars的用户指南[1],其目标是“提供一个利用计算机上所有可用核心的闪电般快速的DataFrame库。”,与Polars不同,Pandas不会在计算机核心之间进行原生的并行处理。其他工具如Dask是建立在Pandas库的基础上尝试进行并行处理。相反,Polars是专为并行化而设计的,并从头开始搭建。虽然它是用Rust编写的,但Polars有一个Python包,这使得它成为Pandas的潜在替代方案。,Polars有两种不同的API:急切API和惰性API。,急切的执行方式类似于Pandas。这意味着直接运行代码,并立即返回结果。,另一方面,惰性执行是在你需要结果时才运行。由于它避免了运行不必要的代码,因此惰性执行可以比急切执行更高效。,对于惰性执行,必须使用.lazy()方法开始操作。然后可以为你想做的任何事情编写要执行的代码。最后需要运行.collect()方法来显示结果。,如果你不运行.collect()方法,则不会立即执行操作。相反,你将看到执行图。,
图片,
,本基准测试设置使用了一个虚构的数据集,其中包含每种数据类型的一列。为了减少时间上的噪声以便进行比较,该虚构数据集包含400万行,几乎有1GB大小,正如[2]中建议的那样。,
图片,用于比较Pandas和Polars基准测试的虚构数据集头部,在下文中,我们将使用%%timeit -n32 -r4对执行进行计时。,要设置Polars,只需使用pip安装它。,之后,可以像使用Pandas一样导入Polars Python包。,现在,准备工作都已完成。,Pandas和Polars(急切API)在语法方面看起来很相似,因为它们具有共享的主要搭建模块:Series和DataFrames。,此外,Polars中的许多表达式也与Pandas表达式相似:,但是,根据Polars用户指南[1],“如果你的Polars代码看起来像是Pandas代码,它可能会运行,但很可能比它应该运行的速度慢。”,本节将探讨Polars包在语法和执行时间方面与Pandas的主要不同之处:,在Polars中读取CSV文件会感觉很熟悉,因为可以像在Pandas中一样使用.read_csv()方法:,在Pandas和Polars中读取样本数据集的结果执行时间如下所示:,
Pandas和Polars之间读取时间的比较,对于我们的样本数据集,使用Pandas读取数据比使用Polars慢8倍左右。,Pandas和Polars之间的第一个主要区别是Polars不使用索引[1]。相反,每行都以其在DataFrame中的整数位置为索引[1]。,虽然相同的Pandas代码也可以在Polars中运行,但这并不是最佳实践。在Polars中,应该使用.select()方法来选择数据。,在Pandas和Polars中选择数据的执行时间结果显示如下:,





文章版权声明
1 原创文章作者:cmcc,如若转载,请注明出处: https://www.52hwl.com/28735.html
2 温馨提示:软件侵权请联系469472785#qq.com(三天内删除相关链接)资源失效请留言反馈
3 下载提示:如遇蓝奏云无法访问,请修改lanzous(把s修改成x)
4 免责声明:本站为个人博客,所有软件信息均来自网络 修改版软件,加群广告提示为修改者自留,非本站信息,注意鉴别
微信扫一扫
支付宝扫一扫