polars

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Polars

Polars

Polars is the fast successor to Pandas. Written in Rust, query-optimized, and parallelized. v1.0 (2024) signaled production readiness.
Polars 是 Pandas 的高性能替代方案。它由 Rust 编写,经过查询优化且支持并行处理。2024年发布的v1.0版本标志着其已具备生产环境可用性。

When to Use

适用场景

  • Performance: 10-100x faster than Pandas on large data.
  • Lazy Evaluation: Define a query plan and execute it efficiently (
    .collect()
    ).
  • Streaming: Process datasets larger than RAM.
  • 性能表现:在处理大型数据时,速度比 Pandas 快10-100倍。
  • 延迟计算(Lazy Evaluation):先定义查询计划,再高效执行(通过
    .collect()
    方法)。
  • 流式处理:可处理大于内存容量的数据集。

Core Concepts

核心概念

Lazy API (
.lazy()
)

延迟API(
.lazy()

Builds a query plan. Polars optimizes it (predicate pushdown) before reducing it.
用于构建查询计划。Polars会在执行查询前对其进行优化(如谓词下推)。

Expressions

表达式(Expressions)

pl.col("a").sum()
is an expression, not a direct calculation.
pl.col("a").sum()
是一个表达式,而非直接计算。

Compatibility

兼容性

Can convert to/from Pandas/PyArrow zero-copy.
可与Pandas/PyArrow进行零拷贝互转。

Best Practices (2025)

2025年最佳实践

Do:
  • Use Lazy Mode:
    df.lazy().filter(...).collect()
    .
  • Use
    scan_parquet
    : Don't load the whole file; scan it.
  • Use GPU engine: Polars has experimental NVIDIA RAPIDS support.
Don't:
  • Don't treat it like Pandas: The API is different (
    axis=1
    doesn't exist; use expressions).
建议做法
  • 使用延迟模式
    df.lazy().filter(...).collect()
  • 使用
    scan_parquet
    :不要加载整个文件,而是采用扫描方式。
  • 使用GPU引擎:Polars 支持实验性的 NVIDIA RAPIDS 加速。
不建议做法
  • 不要将其当作Pandas使用:两者API不同(不存在
    axis=1
    参数;请使用表达式)。

References

参考资料