Encadenar métodos con pipe en Python
pipe mete tu propia función en la cadena, y toda la transformación se lee de arriba abajo.
import pandas as pd
def agregar_wpm(tabla, letras_por_palabra=5):
return tabla.assign(
wpm=(tabla["letras"] / letras_por_palabra / (tabla["segundos"] / 60)))
def solo_veloces(tabla, piso=70):
return tabla[tabla["wpm"] >= piso]
base = pd.DataFrame({"letras": [420, 200, 610], "segundos": [60.0, 60.0, 60.0]})
resultado = (base
.pipe(agregar_wpm)
.pipe(solo_veloces, piso=50)
.sort_values("wpm", ascending=False)
.round(1))
print(resultado)
Cómo funciona
- Cada paso toma un dataframe y devuelve un dataframe.
- Sin variables intermedias, no hay variables desactualizadas.
pipele pasa los argumentos extra a tu función.
Palabras clave y builtins usados aquí
asdefprintreturn
El intento, en números
- Líneas
- 20
- Caracteres a escribir
- 445
- Tokens
- 137
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 78 segundos.
Paso 3 de 5 en Derivar columnas; paso 11 de 26 en pandas.