typestar

SQL sobre dataframes en Python

Polars corre SQL contra dataframes registrados, con planificador y todo.

import polars as pl

intentos = pl.DataFrame({
    "lang": ["python", "rust", "python"],
    "tpm": [104, 98, 91],
})

with pl.SQLContext(intentos=intentos) as ctx:
    respuesta = ctx.execute(
        "SELECT lang, COUNT(*) AS n, AVG(tpm) AS mean_tpm "
        "FROM intentos GROUP BY lang ORDER BY mean_tpm DESC",
        eager=True)
    print(respuesta)

print(intentos.sql("SELECT * FROM self WHERE tpm > 95"))

Cómo funciona

  1. SQLContext registra dataframes bajo nombres.
  2. execute devuelve un LazyFrame, salvo que pidas el collect.
  3. DataFrame.sql es el atajo para un solo dataframe.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
15
Caracteres a escribir
374
Tokens
87
Ritmo de tres estrellas
115 tpm

Al ritmo de tres estrellas de 115 tokens por minuto, este intento toma unos 45 segundos.

Escribe este fragmento

Paso 3 de 4 en Lazy y SQL; paso 27 de 32 en Polars.

← Anterior Siguiente →