Добавление DateOffset в месяцах - непростая задача. На самом деле выражение типа pd.Timestamp('2020-05-29') + 4 * pd.DateOffset(months=3)
выполняется под капотом путем добавления этого смещения 4 раза.
Запустите такой код:
tt = pd.Timestamp('2020-05-29')
for i in range(4):
tt += pd.DateOffset(months=3)
print(f'{i}: {tt}')
, и вы получите:
0: 2020-08-29 00:00:00
1: 2020-11-29 00:00:00
2: 2021-02-28 00:00:00
3: 2021-05-28 00:00:00
Обратите внимание, что если вы добавите 3 месяца к 2020-11-29 , то получите 28-е число февраля, так как в Феруари в 2021 осталось только 28 дней.
Следующее сложение, начиная с этой даты, дает 2021-05-28 (день также 28 ).
Но когда вы добавляете DateOffset 6 месяцев, ситуация такая, как вы выполнили:
tt = pd.Timestamp('2020-05-29')
for i in range(2):
tt += pd.DateOffset(months=6)
print(f'{i}: {tt}')
результат:
0: 2020-11-29 00:00:00
1: 2021-05-29 00:00:00
Как и предполагалось, так как нет "stop "в конце февраля произошло.