安装
Polars 是一个库,安装就像调用相应编程语言的包管理器一样简单。
pip install polars
# Or for legacy CPUs without AVX2 support
pip install polars-lts-cpu
cargo add polars -F lazy
# Or Cargo.toml
[dependencies]
polars = { version = "x", features = ["lazy", ...]}
大索引
默认情况下,Polars 数据帧的行数限制为 \(2^{32}\)(约 43 亿)。通过启用大索引扩展可将此限制增加到 \(2^{64}\)(约 1800 亿亿)。
pip install polars-u64-idx
cargo add polars -F bigidx
# Or Cargo.toml
[dependencies]
polars = { version = "x", features = ["bigidx", ...] }
旧版 CPU
要在没有 AVX 支持的旧 CPU 上安装适用于 Python 的 Polars,请运行
pip install polars-lts-cpu
导入
要使用该库,只需将其导入您的项目即可
import polars as pl
use polars::prelude::*;
特性标志
使用上述命令,您将 Polars 的核心安装到您的系统上。然而,根据您的使用场景,您可能也想安装可选依赖项。这些依赖项是可选的,以最大程度地减少占用空间。这些标志因编程语言而异。在整个用户指南中,我们将在使用某项功能需要额外依赖项时进行提及。
Python
# For example
pip install 'polars[numpy,fsspec]'
全部
| 标签 | 描述 |
|---|---|
| all | 安装所有可选依赖项。 |
GPU
| 标签 | 描述 |
|---|---|
| gpu | 在 NVIDIA GPU 上运行查询。 |
注意
有关更详细的说明和先决条件,请参阅GPU 支持。
互操作性
| 标签 | 描述 |
|---|---|
| pandas | 将数据与 pandas 数据帧/系列相互转换。 |
| numpy | 将数据与 NumPy 数组相互转换。 |
| pyarrow | 将数据与 PyArrow 表/数组相互转换。 |
| pydantic | 将数据从 Pydantic 模型转换为 Polars。 |
Excel
| 标签 | 描述 |
|---|---|
| calamine | 使用 calamine 引擎读取 Excel 文件。 |
| openpyxl | 使用 openpyxl 引擎读取 Excel 文件。 |
| xlsx2csv | 使用 xlsx2csv 引擎读取 Excel 文件。 |
| xlsxwriter | 使用 XlsxWriter 引擎写入 Excel 文件。 |
| excel | 安装所有支持的 Excel 引擎。 |
数据库
| 标签 | 描述 |
|---|---|
| adbc | 使用 Arrow 数据库连接 (ADBC) 引擎从数据库读取和写入数据。 |
| connectorx | 使用 ConnectorX 引擎从数据库读取数据。 |
| sqlalchemy | 使用 SQLAlchemy 引擎写入数据库。 |
| database | 安装所有支持的数据库引擎。 |
云
| 标签 | 描述 |
|---|---|
| fsspec | 从远程文件系统读取和写入。 |
其他 I/O
| 标签 | 描述 |
|---|---|
| deltalake | 从 Delta 表读取和写入。 |
| iceberg | 从 Apache Iceberg 表读取。 |
其他
| 标签 | 描述 |
|---|---|
| async | 异步收集 LazyFrame。 |
| cloudpickle | 序列化用户定义的函数。 |
| graph | 将 LazyFrame 可视化为图形。 |
| plot | 通过 plot 命名空间绘制数据帧。 |
| style | 通过 style 命名空间设置数据帧样式。 |
| timezone | 时区支持1。 |
Rust
# Cargo.toml
[dependencies]
polars = { version = "0.26.1", features = ["lazy", "temporal", "describe", "json", "parquet", "dtype-datetime"] }
可选功能包括
- 额外数据类型
dtype-datedtype-datetimedtype-timedtype-durationdtype-i8dtype-i16dtype-u8dtype-u16dtype-categoricaldtype-struct
lazy- 惰性 APIregex- 在列选择中使用正则表达式。dot_diagram- 从惰性逻辑计划创建 dot 图。
sql- 将 SQL 查询传递给 Polars。streaming- 能够处理大于 RAM 的数据集。random- 生成带有随机采样值的数组ndarray- 从DataFrame转换为ndarraytemporal- Chrono 和 Polars 之间的时间数据类型转换timezones- 激活时区支持。strings-StringChunked的额外字符串工具string_pad- 用于pad_start、pad_end、zfill。string_to_integer- 用于parse_int。
object- 支持名为ObjectChunked<T>的通用分块数组(对T泛型)。这些可以通过 Any trait 从 Series 中向下转型。- 性能相关
nightly- 若干仅限夜间构建的功能,如 SIMD 和专业化。performant- 更多快速路径,编译时间更长。bigidx- 如果您预期行数 >> \(2^{32}\),请激活此功能。这将允许 Polars 通过使用u64作为索引来大大扩展。激活此功能后,Polars 会稍慢一些,因为许多数据结构的缓存效率较低。cse- 激活通用子计划消除优化。
- IO 相关
- 数据帧操作
dynamic_group_by- 基于时间窗口而非预定义键进行分组。还激活滚动窗口分组操作。sort_multiple- 允许在多列上对数据帧进行排序。rows- 从行创建数据帧并从dataframes中提取行。还激活pivot和transpose操作。join_asof- ASOF 连接,用于按最近的键连接而非精确相等匹配。cross_join- 创建两个数据帧的笛卡尔积。semi_anti_join- SEMI 和 ANTI 连接。row_hash- 将数据帧行哈希到UInt64Chunked的实用工具。diagonal_concat- 对角线拼接,从而组合不同的 schema。dataframe_arithmetic- 数据帧与其他数据帧或系列之间的算术运算。partition_by- 按组拆分为多个数据帧。
- Series/表达式操作
is_in- 检查 Series 中的成员资格。zip_with- 压缩两个Series/ChunkedArray。round_series- 对 Series 的底层浮点类型进行四舍五入。repeat_by- 将数组中的元素重复另一个数组指定的次数。is_first_distinct- 检查元素是否为第一个唯一值。is_last_distinct- 检查元素是否为最后一个唯一值。checked_arithmetic- 检查算术运算,对无效操作返回None。dot_product- Series 和表达式上的点积/内积。concat_str- 以线性时间拼接字符串数据。reinterpret- 将位重新解释为有符号/无符号的实用工具。take_opt_iter- 从带有Iterator<Item=Option<usize>>的 Series 中取值。mode- 返回最常出现的值。cum_agg-cum_sum、cum_min和cum_max聚合。rolling_window- 滚动窗口函数,如rolling_mean。interpolate- 插值中间的None值。extract_jsonpath- 对StringChunked运行jsonpath查询。list- 列表工具list_gather- 按多个索引获取子列表。rank- 排名算法。moment- 峰度和偏度统计。ewma- 指数移动平均窗口。abs- 获取 Series 的绝对值。arange- Series 上的范围操作。product- 计算 Series 的乘积。diff-diff操作。pct_change- 计算变化百分比。unique_counts- 计算表达式中的唯一值。log- Series 的对数。list_to_struct- 将List转换为Struct数据类型。list_count- 计算列表中的元素数量。list_eval- 对列表元素应用表达式。cumulative_eval- 对累积增加的窗口应用表达式。arg_where- 获取满足条件的索引。search_sorted- 查找应插入元素以保持顺序的索引。offset_by- 为日期添加偏移量,该偏移量考虑月份和闰年。trigonometry- 三角函数。sign- 计算 Series 的元素级符号。propagate_nans-NaN传播的最小/最大聚合。
- 数据帧美观打印
fmt- 激活数据帧格式化。
-
仅在 Windows 上才需要。 ↩