Concepto
Las operaciones de la lección anterior cubren cálculos y comparaciones simples. Cuando la regla tiene varios casos, como clasificar edades en tramos, escribes una función con if y le pides a pandas que la aplique a cada valor de la columna con apply.
df["nueva"] = df["columna"].apply(nombre_funcion)1. La función recibe un valor. Piensa en una sola celda: la función recibe un valor y devuelve el resultado para ese valor. Puedes probarla sola antes de usarla con la tabla.
def tramo_monto(monto):
if monto >= 100000:
return "alto"
return "bajo"
tramo_monto(150000) # "alto"2. apply la usa en cada fila. apply llama a la función una vez por cada valor y devuelve una Series con los resultados. La función se pasa sin paréntesis: le entregas la función para que pandas la llame, no su resultado.
ventas["tramo"] = ventas["monto"].apply(tramo_monto)Si escribes apply(tramo_monto()), Python intenta llamar la función en ese momento, sin el monto, y da un TypeError.
Cuándo no hace falta. Si la regla es una sola comparación o una operación aritmética, la forma directa de la lección anterior es más corta y más rápida. apply brilla cuando la regla tiene varios caminos.
> tarea Python
Con encuesta ya cargada, completa la función grupo_edad: debe devolver "joven" si la edad es menor que 30, "adulto" si es menor que 50, y "mayor" en otro caso. Aplícala a la columna edad para crear la columna grupo, y guarda en jovenes cuántas personas quedaron en el grupo joven.
Primero intenta: las pistas aparecen después de 2 intentos con un resultado incorrecto (los errores de código no cuentan). Llevas 0.