Patito 开源项目教程
项目介绍
Patito 是一个结合了 Pydantic 和 Polars 的数据建模层,旨在编写现代类型注解的数据框逻辑。Patito 提供了一种简单的方式来声明 Pydantic 数据模型,这些模型同时作为 Polars 数据框的架构。这些架构可以用于:
- 简单且高效的数据框验证
- 轻松生成用于测试的有效模拟数据框
- 以面向对象的方式检索和表示单个行
- 为代码库中的核心数据模型提供单一事实来源
Patito 对 Polars 有第一方支持,Polars 是一个用 Rust 编写的“极速”数据框库。
项目快速启动
安装
首先,通过 pip 安装 Patito:
pip install patito
创建数据模型
创建一个类型注解的 Pydantic 子类来定义数据框的架构:
from typing import Literal
import patito as pt
class Product(pt.Model):
product_id: int = pt.Field(unique=True)
temperature_zone: Literal["dry", "cold", "frozen"]
is_for_sale: bool
使用数据模型
使用上述定义的 Product
类来验证和操作数据框:
import polars as pl
# 创建一个 Polars 数据框
data = {
"product_id": [1, 2, 3],
"temperature_zone": ["dry", "cold", "frozen"],
"is_for_sale": [True, False, True]
}
df = pl.DataFrame(data)
# 验证数据框
validated_df = Product.validate(df)
print(validated_df)
应用案例和最佳实践
数据验证
Patito 允许你通过创建类型注解的 Pydantic 子类来指定数据框中每一列的类型,从而进行数据验证。这确保了数据的一致性和正确性。
生成模拟数据
使用 Patito 模型可以轻松生成用于测试的模拟数据框,这对于单元测试和集成测试非常有用。
面向对象的数据操作
Patito 提供了以面向对象的方式检索和操作数据框中的单个行,使得代码更加直观和易于维护。
典型生态项目
Polars
Polars 是一个用 Rust 编写的极速数据框库,Patito 对其有第一方支持,提供了高效的数据操作和处理能力。
Pydantic
Pydantic 是一个数据验证库,Patito 利用其强大的类型注解和验证功能,为数据框提供了严格的类型检查和验证机制。
通过结合 Polars 和 Pydantic,Patito 提供了一个现代且高效的数据建模和操作解决方案。