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
Series.mapaplica por elemento;DataFrame.apply, por columna o fila.axis=1recorre filas, que es la dirección lenta.- La aritmética sobre columnas enteras es donde pandas es rápido.
Palabras clave y builtins usados aquí
aslambdaprint
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.
Paso 2 de 5 en Derivar columnas; paso 10 de 26 en pandas.