1、介绍
Polars是一个用于处理结构化数据的超快速DataFrame库。它的核心是用Rust编写的,支持Python,R和NodeJS等多种编程语言。Polars具有以下特点:
l 支持惰性和急切的执行模式,可以根据需要选择最适合的方式。
l 利用多线程和SIMD技术,实现高效的并行计算和向量化处理。
l 采用查询优化器,自动确定最佳的执行计划和算法。
l 提供强大的表达式API,可以方便地编写复杂的查询语句。
l 支持混合流式处理,可以处理超大规模的数据集。
l 使用Apache Arrow作为内存模型,可以与其他数据工具无缝集成。
l 靠近机器的设计,没有外部依赖,完全控制生态系统(API,内存和执行)。
Polars的性能非常出色,它在TPC-H基准测试中轻松击败了其他解决方案,相比pandas,它可以实现超过30倍的性能提升。
Polars和pandas都是用于处理结构化数据的Python库,但它们有一些重要的区别。以下是一些主要的区别:
l Polars是用Rust编写的,这使得它具有 C/C++ 性能,并允许它完全控制查询引擎中的性能关键部分,而pandas是用Cython编写的。这意味着Polars可以利用Rust的高性能和内存安全性,而pandas可能会遇到一些性能瓶颈和内存泄漏。
l Polars支持惰性和急切的执行模式,而pandas只支持急切的执行模式。这意味着Polars可以在运行时优化查询计划,而pandas需要事先构建数据结构。
l Polars使用Apache Arrow作为内存模型,而pandas使用自定义的内存模型。这意味着Polars可以与其他基于Arrow的数据工具无缝集成,而pandas需要进行额外的数据转换。
l Polars提供了一个强大的表达式API,可以方便地编写复杂的查询语句,而pandas提供了一个基于方法的API,可能需要更多的代码和中间变量。
Polars采用靠近机器的设计,没有外部依赖,完全控制生态系统(API,内存和执行),而pandas依赖于许多其他的库,如numpy,scipy等。
Polars是一个用于Python的高性能DataFrame库,它可以快速有效地处理大型数据集。Polars的核心是用Rust编写的,这是一种低级别的语言,没有外部依赖。Polars还支持多线程并行处理,以及与Apache Arrow的无缝集成。Polars的表达式非常直观,让你可以用易读和高效的方式编写代码。Polars还提供了一个惰性API,让你可以延迟计算,从而优化查询性能。
2、基础
要使用Polars,你需要先安装它。你可以用pip命令来安装Polars:
pip install polars
然后,你可以在你的Python代码中导入Polars:
import polars as pl
Polars的基本数据结构是DataFrame,它是一个二维的表格,由多个列组成。你可以用不同的方式来创建DataFrame,例如从列表,字典,文件,或者其他DataFrame库。
例如,你可以用下面的代码来创建一个简单的DataFrame:
print()函数来查看DataFrame的内容:
- df = pl.DataFrame({
- "name": ["Alice", "Bob", "Charlie"],
- "age": [25