Я хочу удалить строки из фрейма данных pandas, когда значение столбца даты находится в списке дат. Следующий код не работает:
a=['2015-01-01' , '2015-02-01']
df=df[df.datecolumn not in a]
Я получаю следующую ошибку:
ValueError: значение истинности Серии неоднозначно. Используйте a.empty, a.bool (), a.item (), a.any () или a.all ().
Series.isin
, что нетDataFrame.isin
. Вы сравниваете столбец, а не весь df.Вы можете использовать
Series.isin
:Хотя сообщение об ошибке предполагает, что
all()
илиany()
может использоваться, они полезны только тогда, когда вы хотите уменьшить результат до одного логического значения. Однако это не то, что вы пытаетесь сделать сейчас, а именно проверить принадлежность всех значений в серии к внешнему списку и сохранить результаты без изменений (то есть, логическая серия, которая затем будет использоваться для нарезки исходного DataFrame ).Вы можете прочитать об этом подробнее в разделе « Подборки» .
источник