typestar

apply, map y vectorización en Python

apply es un bucle con sombrero elegante: primero busca una expresión vectorizada.

import pandas as pd

tabla = pd.DataFrame({"letras": [420, 380], "errores": [3, 0]})

print(tabla["letras"].map(lambda n: n // 5))
print(tabla.apply(lambda col: col.max() - col.min()))
print(tabla.apply(lambda fila: fila["letras"] - fila["errores"], axis=1))

# lo mismo, vectorizado
print((tabla["letras"] - tabla["errores"]).tolist())

Cómo funciona

  1. Series.map aplica por elemento; DataFrame.apply, por columna o fila.
  2. axis=1 recorre filas, que es la dirección lenta.
  3. La aritmética sobre columnas enteras es donde pandas es rápido.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
10
Caracteres a escribir
336
Tokens
125
Ritmo de tres estrellas
105 tpm

Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 71 segundos.

Escribe este fragmento

Paso 2 de 5 en Derivar columnas; paso 10 de 26 en pandas.

← Anterior Siguiente →