вычтите 1 месяц из даты в python, используя relativedelta

#python #pandas #dataframe #datetime #relativedelta

Вопрос:

У меня есть дата, и я хочу вычесть 1 месяц из этой даты. Я использую этот код, но это вычитает 6 месяцев, я не понимаю, почему.

 print('the max date : ' , all_data['DT_ANO'].max()) dt_start = all_data['DT_ANO'].max() - relativedelta(month = 1) print('dt_start : ' , dt_start)  

Я получаю такой результат :

 the max date : 2021-08-16 00:00:00 dt_start : 2021-01-16 00:00:00   

вместо :

 the max date : 2021-08-16 00:00:00 dt_start : 2021-07-16 00:00:00   

Комментарии:

1. Я думаю, что вы должны использовать datetime.timedelta , а не dateutil.relativedelta

Ответ №1:

Предположив, что relativedelta является функцией dateutil, затем используйте

 relativedelta(months=1)  

Если вы используете месяц, год, день, … значение будет абсолютным, если вы используете месяц s, день s, год s, значение будет относительным.