SuperAPI AI 工具集

polars

编程与开发

查看项目

更新于 10-15 21:40

技能介绍

Polars 是一个快速 DataFrame 库,面向需要惰性求值和并行执行的数据处理场景。资料给出的适用情形包括:Pandas 对数据集过慢、处理适合放入内存的 1-100GB 数据、需要惰性求值做查询优化、构建 ETL 管道,以及希望无需额外配置即获得并行执行。

使用方式上区分急切与惰性模式:read_csv() 立即执行,适合小数据探索;scan_csv() 在 .collect() 时才执行,适合大数据与管道。惰性模式先构建查询计划再优化,优化器会做谓词下推(尽早过滤)和投影下推(尽早选列)。核心操作包括 select()、filter()、with_columns()、drop()、head()/tail() 等选择操作,group_by().agg()、pivot()、melt()、unique() 等聚合操作,以及 inner、left、outer、cross、semi、anti 等连接类型。Polars 使用表达式 API(pl.col())代替索引,表达式惰性求值并被优化,常用表达式有 pl.col("name")、pl.lit(value)、pl.all()、pl.exclude(...),方法涵盖求和、均值、字符串、日期时间、条件与窗口计算。

文件 I/O 支持 CSV、Parquet、JSON、IPC/Arrow,读写均有对应函数,并使用 scan_* 处理大文件以获得惰性优化;资料建议性能优先时使用 Parquet。性能建议包括使用惰性模式、Parquet、尽早选列与过滤、避免 Python UDF、使用表达式向量化、读取时设置 dtype。

限制方面,Polars 要求数据能放入内存;资料还将其与 Pandas(小数据与生态好但慢且耗内存)、Dask(可超内存但 API 更复杂)、Spark(集群但需基础设施)、DuckDB(SQL 接口但风格不同)进行了对比。文档地址为 https://pola.rs/,用户指南为 https://docs.pola.rs/user-guide/。