У меня есть Dataframe с данными о продажах, как показано ниже:
bill_no,sale_date
1001,2018-12-11
1002,2018-12-15
1003,2018-12-14
1004,2018-12-14
1005,2018-12-17
Я пытаюсь отфильтровать bill_no, который старше на 3 дня по сравнению с текущей датой. Вот что я пробовал:
today = datetime.date.today().isoformat()
today
Вышеуказанная прибыль 2018-12-17
Я пытаюсь проверить df ['sale_date'] с сегодняшним днем, как показано ниже:
df['sale_date'] = (df['sale_date'] - today)
Вышеупомянутое вызывает ошибку
TypeError: unsupported operand type(s) for -: 'str' and 'str'
Вы можете преобразовать все данные в дату и время на to_datetime
с помощью Timestamp.normalize
:
today = pd.Timestamp.today().normalize()
print (today)
2018-12-17 00:00:00
df['sale_date'] = pd.to_datetime(df['sale_date'])
df['sale_date'] = (df['sale_date'] - today)
print (df)
bill_no sale_date
0 1001 -6 days
1 1002 -2 days
2 1003 -3 days
3 1004 -3 days
4 1005 0 days