фильтрация и сравнение дат pandas

у меня есть файл sql, который состоит из данных, ниже которых я читаю в панд.

df = pandas.read_sql('Database count details', con=engine,
                     index_col='id', parse_dates='newest_available_date')

выход

id       code   newest_date_available
9793708  3514   2015-12-24
9792282  2399   2015-12-25
9797602  7452   2015-12-25
9804367  9736   2016-01-20
9804438  9870   2016-01-20

следующая строка кода, чтобы получить дату на прошлой неделе

date_before = datetime.date.today() - datetime.timedelta(days=7) # Which is 2016-01-20

то, что я пытаюсь сделать, это сравнить date_before С df и распечатайте все строки, которые меньше date_before

if (df['newest_available_date'] < date_before): print(#all rows)

очевидно, это возвращает мне ошибку The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

как мне это сделать?

1 ответов


Я бы сделал маску, как:

a = df[df['newest_date_available'] < date_before]

Если date_before = datetime.date(2016, 1, 19), это возвращает:

        id  code newest_date_available
0  9793708  3514            2015-12-24
1  9792282  2399            2015-12-25
2  9797602  7452            2015-12-25