Polars 是一个高性能的 DataFrame 库,专为处理大规模数据而设计,使用 Rust 编写并提供了 Python 和 Node.js 的接口。它旨在提供比 Pandas 更快的性能,特别是在处理大型数据集时。

主要特点

  1. 高性能

    • 基于 Rust 的 Apache Arrow 实现

    • 多线程查询引擎

    • 延迟/惰性评估(Lazy evaluation)优化查询计划

  2. 内存高效

    • 零拷贝数据处理

    • 内存使用效率高

  3. 易用性

    • API 设计与 Pandas 相似,学习曲线平缓

    • 支持链式方法调用

  4. 功能丰富

    • 支持多种数据操作(过滤、分组、聚合、连接等)

    • 支持时间序列操作

    • 支持缺失值处理

相关网址:

安装

使用命令安装:

pip install polars

安装相关包:

pip install fastexcel xlsx2csv openpyxl

数据类型

Polars完全基于Arrow数据类型,并由Arrow内存阵列支持。这使得数据处理缓存效率高,支持进程间通信。大多数数据类型遵循确切的实现来自Arrow,除了Utf8(实际上是LargeUtf8)、categoryObject(支持有限)。

  1. 基本类型

    • Int8/Int16/Int32/Int64:有符号整数

    • UInt8/UInt16/UInt32/UInt64:无符号整数

    • Float32/Float64:浮点数

    • Boolean:布尔值

    • Utf8:字符串类型

  2. 复合类型

    • List:列表类型,可以包含相同类型的元素

    • Struct:结构体类型,可以包含多个不同类型的字段

    • Categorical:分类类型,适用于有限集合的字符串

  3. 时间类型

    • Date:日期(年月日)

    • Datetime:日期时间(带时区)

    • Duration:时间间隔

    • Time:时间(时分秒)

Series

Series是Polars中的一维数据结构,类似于Pandas中的Series,但性能更高:

  1. 基本特性

    • 单一数据类型(同质)

    • 长度不可变(创建后不能增减元素)

    • 支持向量化操作

  2. 创建方式

# 从列表创建
s = pl.Series("age", [25, 30, 35])

# 从numpy数组创建
import numpy as np
s = pl.Series("values", np.array([1.1, 2.2, 3.3]))

# 从Pandas Series创建
import pandas as pd
s = pl.from_pandas(pd.Series([1, 2, 3], name="id"))
  1. 常用操作

# 基本统计
s.mean(), s.median(), s.std()

# 过滤
s.filter(s > 30)

# 排序
s.sort()

# 唯一值
s.unique()

DataFrame

DataFrame是Polars的核心数据结构,是一个二维表格:

  1. 基本特性

    • 由多个Series组成(每列一个Series)

    • 列可以有不同的数据类型

    • 不可变设计(操作返回新DataFrame)

  2. 创建方式

# 从字典创建
df = pl.DataFrame({
    "name": ["Alice", "Bob", "Charlie"],
    "age": [25, 30, 35],
    "city": ["NY", "LA", "Chicago"]
})

# 从Pandas创建
df = pl.from_pandas(pd.DataFrame(...))

# 从CSV读取
df = pl.read_csv("data.csv")
  1. 基本操作

# 查看前几行
df.head()

# 描述性统计
df.describe()

# 添加列
df = df.with_columns((pl.col("age") + 1).alias("age_plus_one"))

# 删除列
df = df.drop("city")

文章作者: Vsoapmac
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 soap的会员制餐厅
python 数据分析 第三方库 个人分享
喜欢就支持一下吧