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
SQLContextregistra dataframes bajo nombres.executedevuelve un LazyFrame, salvo que pidas el collect.DataFrame.sqles el atajo para un solo dataframe.
Palabras clave y builtins usados aquí
asprintwith
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.
Paso 3 de 4 en Lazy y SQL; paso 27 de 32 en Polars.