typestar

Agrupar en el tiempo en Python

group_by_dynamic agrupa filas por ventana de tiempo, como un resample.

import polars as pl

tabla = pl.DataFrame({
    "at": pl.datetime_range(
        pl.datetime(2026, 7, 27), pl.datetime(2026, 8, 2),
        interval="1d", eager=True),
    "tpm": [88, 91, 97, 104, 99, 108, 102],
}).sort("at")

semanal = tabla.group_by_dynamic("at", every="3d").agg(
    pl.len().alias("runs"),
    pl.col("tpm").mean().round(1).alias("mean_tpm"),
)
print(semanal)

movil = tabla.with_columns(
    pl.col("tpm").rolling_mean(window_size=3).round(1).alias("rolling3"))
print(movil.tail(3))

Cómo funciona

  1. El dataframe debe estar ordenado por la columna de tiempo.
  2. every es el tamaño del intervalo; period puede traslaparlos.
  3. Las ventanas vacías aparecen o no según los argumentos.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
18
Caracteres a escribir
468
Tokens
186
Ritmo de tres estrellas
110 tpm

Al ritmo de tres estrellas de 110 tokens por minuto, este intento toma unos 101 segundos.

Escribe este fragmento

Paso 2 de 2 en Series de tiempo; paso 24 de 32 en Polars.

← Anterior Siguiente →