При указании списка по диапазону первая граница включается, а вторая - нет. Итак, здесь вы включаете {}-01-01
, а не {}-12-31
. Но вы учитываете значение полуночи.
Итак, вам нужно включить последний день года, но пропустить «праздничный» новогодний час:
>>> year = 2018
>>> times = list(pd.date_range('{}-01-01'.format(year), '{}-01-01'.format(year+1), freq='H'))
>>> times = times[:-1]
>>> len(times)
8760
Вам необходимо включить новогодний день, {}-01-01
, так что вы получите канун Нового года, {}-12-31
. Но тогда вы получите полночный час, потому что это то, что начинает день. Следовательно, необходимо исключить последнюю запись в списке: times = times[:-1]
, чтобы вы заканчивали в 23:00 12-31.