欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > Polars 快速入门

Polars 快速入门

2025/2/24 19:35:59 来源:https://blog.csdn.net/weixin_32759777/article/details/142724539  浏览:    关键词:Polars 快速入门

Polars 快速入门

Polars 是一个用 Rust 编写的 DataFrame 库,使用 Arrow 作为其底层数据结构。它的目标是通过并行化 DataFrame 上的查询,提供一个快速的解决方案。

安装

使用 pip install 即可安装 Polars。
$ pip install polars
所有二进制包都是基于 Python 3.6+ 构建的。

实例

下面的例子中我们读入并解析一个 CSV 文件,过滤后紧跟一个 groupby 分组求和操作:

import polars as pl
df = pl.read_csv("https://j.mp/iriscsv")
print(df.filter(pl.col("sepal_length") > 5).groupby("species").agg(pl.all().sum())
)上面的代码输出如下:
shape: (3, 5)
├──────────────┼──────────────────┼─────────────────┼──────────────────┼─────────────────┤
│ species      ┆ sepal_length_sum ┆ sepal_width_sum ┆ petal_length_sum ┆ petal_width_sum │
│ ---          ┆ ---              ┆ ---             ┆ ---              ┆ ---             │
│ str          ┆ f64              ┆ f64             ┆ f64              ┆ f64             │
├──────────────┼──────────────────┼─────────────────┼──────────────────┼─────────────────┤
│ "virginica"  ┆ 324.5            ┆ 146.2           ┆ 273.1            ┆ 99.6            │
├──────────────┼──────────────────┼─────────────────┼──────────────────┼─────────────────┤
│ "versicolor" ┆ 281.9            ┆ 131.8           ┆ 202.9            ┆ 63.3            │
├──────────────┼──────────────────┼─────────────────┼──────────────────┼─────────────────┤
│ "setosa"     ┆ 116.9            ┆ 81.7            ┆ 33.2             ┆ 6.1             │
└──────────────┴──────────────────┴─────────────────┴──────────────────┴─────────────────┘

如上所示, Polars 可以格式化输出,包括作为表头的列名和数据类型。

延迟执行示例

上面的例子我们也可以采用延迟执行方式执行:

import polars as pl
print(pl.read_csv("https://j.mp/iriscsv").lazy().filter(pl.col("sepal_length") > 5).groupby("species").agg(pl.all().sum()).collect()
)

如果数据文件保存在本地,我们还可以使用 scan_csv 来实现延迟执行查询。
更多详细信息和高级用法,请访问Polars 官方文档。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词