跳到内容

安装

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-date
    • dtype-datetime
    • dtype-time
    • dtype-duration
    • dtype-i8
    • dtype-i16
    • dtype-u8
    • dtype-u16
    • dtype-categorical
    • dtype-struct
  • lazy - 惰性 API
    • regex - 在列选择中使用正则表达式。
    • dot_diagram - 从惰性逻辑计划创建 dot 图。
  • sql - 将 SQL 查询传递给 Polars。
  • streaming - 能够处理大于 RAM 的数据集。
  • random - 生成带有随机采样值的数组
  • ndarray- 从 DataFrame 转换为 ndarray
  • temporal - Chrono 和 Polars 之间的时间数据类型转换
  • timezones - 激活时区支持。
  • strings - StringChunked 的额外字符串工具
    • string_pad - 用于 pad_startpad_endzfill
    • string_to_integer - 用于 parse_int
  • object - 支持名为 ObjectChunked<T> 的通用分块数组(对 T 泛型)。这些可以通过 Any trait 从 Series 中向下转型。
  • 性能相关
    • nightly - 若干仅限夜间构建的功能,如 SIMD 和专业化。
    • performant - 更多快速路径,编译时间更长。
    • bigidx - 如果您预期行数 >> \(2^{32}\),请激活此功能。这将允许 Polars 通过使用 u64 作为索引来大大扩展。激活此功能后,Polars 会稍慢一些,因为许多数据结构的缓存效率较低。
    • cse - 激活通用子计划消除优化。
  • IO 相关
    • serde - 支持 serde 序列化和反序列化。可用于 JSON 和更多 serde 支持的序列化格式。
    • serde-lazy - 支持 serde 序列化和反序列化。可用于 JSON 和更多 serde 支持的序列化格式。
    • parquet - 读取 Apache Parquet 格式。
    • json - JSON 序列化。
    • ipc - Arrow 的 IPC 格式序列化。
    • decompress - 自动推断 CSV 文件的压缩格式并解压缩。支持的压缩格式:
    • gzip
    • zlib
    • zstd
  • 数据帧操作
    • dynamic_group_by - 基于时间窗口而非预定义键进行分组。还激活滚动窗口分组操作。
    • sort_multiple - 允许在多列上对数据帧进行排序。
    • rows - 从行创建数据帧并从 dataframes 中提取行。还激活 pivottranspose 操作。
    • 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_sumcum_mincum_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 - 激活数据帧格式化。

  1. 仅在 Windows 上才需要。