У меня есть экземпляр datetime с датами (dfDates
):
2017-03-01 00:00
2017-03-02 00:00
2017-03-04 00:00
...
В течение последнего дня (здесь: 2017-03-04
) я вычисляю предыдущий день/месяц/год/и т.д. следующим образом:
def previous_day(dtToday):
return dtToday - pd.DateOffset(days=1)
Это возвращает 2017-03-03
. Однако этот рабочий день недоступен в моем диапазоне дат (dfDates
).
Поэтому я ищу надежный способ найти дату, которая ближе всего к предыдущему дню/месяцу/году/и т.д. В этом случае за предыдущий день он должен вернуться 2017-03-02
.
Заметьте, я понимаю, что вы можете сделать что-то вроде индекса -1
, чтобы получить предыдущий день. Это становится все же сложным, если принять предыдущий месяц (не всегда 30
дней в месяц) и даже в предыдущем году (не всегда 252
рабочих дней в году). Поэтому существует надежный метод получения ближайшей доступной даты?
Обновление
Я также понимаю, что вы можете использовать timedelta следующим образом:
from datetime import datetime, timedelta
d = datetime.today() - timedelta(days=days_to_subtract)
Однако, как это связано с dtToday
и как связать его с dfDates
? dtToday
в моем случае не всегда datetime.today()
. Иногда это случайная дата.