Escribe para buscar…

Patito

Patito ofereix una manera senzilla de declarar models de dades pydantic que serveixen també com a esquema per als teus dataframes de polars.

Esta página todavía no se ha traducido — se muestra en su idioma original:Català

Introducció

patito és una biblioteca de validació de dataframes construïda sobre Polars.

La idea central de Patito és que has de definir un anomenat model per a cadascuna de les teves fonts de dades.

Un model és una classe declarativa de Python que descriu les propietats generals d’un conjunt de dades tabulars: els noms de totes les columnes, els seus tipus, límits de valors, etc.

Aquests models es poden utilitzar per validar les fonts de dades quan s’ingressen al pipeline de dades del teu projecte. Al seu torn, els teus models es converteixen en un catàleg centralitzat i fiable de tots els fets essencials sobre les teves dades, fets en els quals pots confiar durant el desenvolupament.

Crea un projecte nou i instal.la patito:

shell
uv init patito-test
cd patito-test
uv add patito polars

Validació de DataFrame

Suposem que el teu projecte fa un seguiment de productes, i que aquests productes tenen quatre propietats principals:

  1. Un identificador numèric únic
  2. Un nom
  3. Una zona de temperatura ideal que pot ser "dry" (sec), "cold" (fred) o "frozen" (congelat)
  4. Una demanda del producte expressada com a percentatge de la previsió total de vendes per la següent setmana

En forma tabular, les dades podrien tenir aquest aspecte:

product_idnametemperature_zonedemand_percentage
1Appledry0.23%
2Milkcold0.61%
3Ice cubesfrozen0.01%

Ara comencem a modelar les restriccions que volem aplicar a les nostres dades.

A Patito, això es fa definint una classe que hereta de patito.Model, una classe que té una anotació de camp per a cada columna de les dades.

Aquests models s’haurien de definir preferiblement en un lloc centralitzat, convencionalment models.py, on els puguis trobar i consultar fàcilment.

Aquests models s’haurien de definir preferiblement en un lloc centralitzat, convencionalment models.py, on els puguis trobar i consultar fàcilme

python
models.py
from typing import Literal

import patito as pt

class Product(pt.Model):
     product_id: int
     name: str
     temperature_zone: Literal["dry", "cold", "frozen"]
     demand_percentage: float

Aquí hem utilitzat typing.Literal de la biblioteca estàndard per especificar que temperature_zone no és només un str, sinó específicament un dels valors literals "dry", "cold", o "frozen".

Ara pots utilitzar aquesta classe per representar una única instància específica d’un producte:

python
main.py
from models import Product

apple: Product = Product(product_id=1, name="Apple", temperature_zone="dry", demand_percentage=0.23)
print(apple)

La classe també ofereix automàticament validació de dades d’entrada, per exemple, si proporciones un valor invàlid per a temperature_zone:

python
from models import Product

pizza: Product = Product(product_id=64, name="Pizza", temperature_zone="oven", demand_percentage=0.12)

Estás leyendo una vista previa.

Inicia sesión para leer el artículo completo. Cualquier cuenta abre 4 artículos gratuitos al mes; el alumnado y el profesorado leen las páginas de su curso sin límite.

Iniciar sesión