Использование ptp
и np.timedelta64
:
>>> idx.to_series().ptp() / np.timedelta64(1, 'Y')
4.019247486259129
Если вы хотите, чтобы он был более конкретным (вплоть до дней) и получил объект Timedelta
, просто не делите:
>>> idx.to_series().ptp()
Timedelta('1468 days 00:00:00')
Если date_range
всегда сортируется, то использование to_series
с ptp
добавляет ненужную сложность, и вы можете использовать часть ответа @ jezrael
>>> (idx[-1] - idx[0]) / np.timedelta64(1, 'Y')
4.019247486259129