Quiero eliminar filas de un marco de datos de pandas cuando el valor de la columna de fecha está en una lista de fechas. El siguiente código no funciona:
a=['2015-01-01' , '2015-02-01']
df=df[df.datecolumn not in a]
Obtuve el siguiente error:
ValueError: el valor de verdad de una serie es ambiguo. Utilice a.empty, a.bool (), a.item (), a.any () o a.all ().
Series.isin
noDataFrame.isin
. Está comparando una columna, no un df completo.Puede utilizar
Series.isin
:Si bien el mensaje de error indica que
all()
oany()
se puede utilizar, son útiles sólo cuando se desea reducir el resultado en un solo valor booleano. Sin embargo, eso no es lo que está tratando de hacer ahora, que es probar la membresía de todos los valores de la serie con la lista externa y mantener los resultados intactos (es decir, una serie booleana que luego se utilizará para cortar el DataFrame original ).Puedes leer más sobre esto en Gotchas .
fuente