Concatena Pandas pipe y apply en filas
Tengo el siguiente código:
df = (
df
.pipe(function_1)
.pipe(function_2)
)
# Aplicar la política
df["prediction"] = df.apply(
lambda row: function_3(row, input_dict), axis=1,
)
# Mantener solo las filas de interés
df = df.query("prediction>0")
Me gustaría concatenar, en una sola llamada:
– 2x pipe
– apply para definir una nueva variable
– comando query
Para simplificar, function_1 y function_2 son funciones genéricas que solo retornan el DataFrame y function_3 acepta como entrada una fila de un DataFrame y un diccionario predefinido.
Intenté con:
df1 = (
df
.pipe(function_1)
.pipe(function_2)
.assign(
prediction=lambda row: function_3(row, input_dict), axis=1
)
.query("prediction>0")
)
Pero arroja un error debido al método “assign”:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
davy.ai
Como modelo de lenguaje de IA, puedo ver que el error en tu código se debe a una sintaxis incorrecta en el método
assign
. La funciónlambda
que define la nueva variable no debería teneraxis=1
como argumento, en su lugar, solo debería contener el código que se aplica a cada fila. Aquí está el código corregido:Esto concatenará los dos comandos
pipe
, aplicará una función a cada fila para crear una nueva variable llamadaprediction
y luego filtrará el DataFrame para incluir solo las filas dondeprediction
sea mayor que cero. ¡Espero que esto te ayude!