Вы можете использовать pd.date_range
. Поскольку интервал между сгенерированными датами должен составлять 5 лет, вам необходимо добавить конечную дату самостоятельно, а затем создать интервалы из сгенерированных дат:
start = '1990-01-01'
end = '2020-02-18'
s = pd.date_range(start, end, freq='5YS').append(pd.DatetimeIndex([end]))
print(s)
DatetimeIndex(['1990-01-01', '1995-01-01', '2000-01-01', '2005-01-01',
'2010-01-01', '2015-01-01', '2020-01-01', '2020-02-18'],
dtype='datetime64[ns]', freq=None)
Затем используйте zip
для создания интервал:
list(zip(s[:-1], s[1:]))
[(Timestamp('1990-01-01 00:00:00'), Timestamp('1995-01-01 00:00:00')),
(Timestamp('1995-01-01 00:00:00'), Timestamp('2000-01-01 00:00:00')),
(Timestamp('2000-01-01 00:00:00'), Timestamp('2005-01-01 00:00:00')),
(Timestamp('2005-01-01 00:00:00'), Timestamp('2010-01-01 00:00:00')),
(Timestamp('2010-01-01 00:00:00'), Timestamp('2015-01-01 00:00:00')),
(Timestamp('2015-01-01 00:00:00'), Timestamp('2020-01-01 00:00:00')),
(Timestamp('2020-01-01 00:00:00'), Timestamp('2020-02-18 00:00:00'))]