фильтрация и сравнение дат 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