La Función Lambda
La función lambda es una forma de definir una función en una sola línea de código. Usualmente se la asignamos a una variable
¿Como trabaja?:
la función es guardada en una variable llamada
add_two
lambda
declara que esta es una funciónlambda
(es como declarar eldef
de la función normal de python)my_input
es lo que pasamos como parámetro de la funciónmy_input + 2
es lo que crearemos con elreturn
la función lambda funciona con todo tipo de variables no solo con integers!
Sentencias if
con Lambda
if
con LambdaPodemos hacer los lambdas más complejos usando una forma modificada de la sentencia if
. Supongamos que queremos pagar a los trabajadores medio tiempo por las horas extras (cualquier trabajo de más de 40 horas por semana). la siguiente función convertirá el número de horas en medio tiempo utilizando una sentencia if
hagamos primero el ejercicio con una función "normal" de python
Hagamos lo mismo, pero ahora con la función Lambda de python
En términos generales la sintaxis es la siguiente:
Aplicando Lambda a una columna
En pandas normalmente usamos lambdas para correr funciones complejas sobre columnas. Tenemos este dataframe:
Ahora supongamos que queremos crear una columna que contenga el proveedor del email de cada email address. recuerde que para esto podemos usar el método split
de python. Algo como esto: ('john@gmail.com').split('@')[-1]
y retornará 'gmail.com'
, o sea el proveedor de email. Queremos hacer esta operación sobre cada elemento de una columna de pandas.
Aplicando lambdas en una fila
También podemos hacer operaciones sobre múltiples columnas a la vez. Si usamos apply
sin especificar una columna y añadimos el argumento axis=1 el input a la función lambda será la fila completa no una columna. Recordemos que para acceder a los valores de una fila usamos la sintaxis row.colum_name
o row["column_name"]
Queremos añadir el precio con los impuestos por cada fila, necesitaremos revisar dos columnas: price
e Is taxed?
Si
Is taxed?
esYes
, lo multiplicamos por7.5% (1.075)
Si
Is taxed?
esNo
, dejamos el precio sin multiplicar
Last updated