typestar

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

  1. Cada paso toma un dataframe y devuelve un dataframe.
  2. Sin variables intermedias, no hay variables desactualizadas.
  3. pipe le pasa los argumentos extra a tu función.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 3 de 5 en Derivar columnas; paso 11 de 26 en pandas.

← Anterior Siguiente →