Вы используете просто списки:
newdates = [datetime.strptime(x, '%m/%d/%Y') for x in rebaldates]
print(newdates)
Выход:
[datetime.datetime(2010, 12, 31, 0, 0),
datetime.datetime(2007, 12, 31, 0, 0),
datetime.datetime(2008, 6, 20, 0, 0),
datetime.datetime(2008, 12, 19, 0, 0),
datetime.datetime(2009, 6, 19, 0, 0),
datetime.datetime(2009, 12, 18, 0, 0),
datetime.datetime(2010, 6, 18, 0, 0),
datetime.datetime(2010, 12, 17, 0, 0)]
Это
newdates[:, :8]
- это разделение по типу NumPy - оно не поддерживается в обычных списках - вы можете разделять только на целые числа: my_list[inclusive_start:exclusive_stop:steps]
(все целые числа)
Для вычисления (попарной) дельты вы можете сделать:
import datetime
newdates=[datetime.datetime(2010, 12, 31, 0, 0),
datetime.datetime(2007, 12, 31, 0, 0),
datetime.datetime(2008, 6, 20, 0, 0),
datetime.datetime(2008, 12, 19, 0, 0),
datetime.datetime(2009, 6, 19, 0, 0),
datetime.datetime(2009, 12, 18, 0, 0),
datetime.datetime(2010, 6, 18, 0, 0),
datetime.datetime(2010, 12, 17, 0, 0)]
zipper = zip(newdates,newdates[1:])
delta = [(a-b) for a,b in zipper]
print(delta)
print( [d.days for d in delta] )
Выход:
[datetime.timedelta(1096), datetime.timedelta(-172), datetime.timedelta(-182),
datetime.timedelta(-182), datetime.timedelta(-182), datetime.timedelta(-182),
datetime.timedelta(-182)]
[1096, -172, -182, -182, -182, -182, -182]
См .: