typestar

Las expresiones le ganan a map_elements en Python

map_elements cae a Python por fila: correcto, pero es el camino lento.

import polars as pl

tabla = pl.DataFrame({"tpm": [104, 88, 96]})

lento = tabla.with_columns(
    pl.col("tpm").map_elements(lambda n: n * 2, return_dtype=pl.Int64)
      .alias("doubled_python"))

rapido = tabla.with_columns((pl.col("tpm") * 2).alias("doubled_expr"))

print(lento)
print(rapido)
print(lento["doubled_python"].to_list() == rapido["doubled_expr"].to_list())

Cómo funciona

  1. Una expresión se queda en Rust y se paraleliza.
  2. map_elements necesita un dtype de retorno para seguir tipada.
  3. Recurre a él solo cuando no existe una expresión.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
13
Caracteres a escribir
364
Tokens
120
Ritmo de tres estrellas
115 tpm

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

Escribe este fragmento

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

← Anterior Siguiente →