Вы можете сначала преобразовать to_datetime
, а затем вычесть все значения без первого со всеми значениями без последнего:
dates = pd.to_datetime(dates, format='%d/%m/%Y')
delta = dates[:-1] - dates[1:]
print (delta)
TimedeltaIndex(['30 days', '28 days', '35 days', '27 days', '29 days',
'35 days', '27 days', '36 days', '27 days', '28 days',
'29 days', '35 days', '28 days', '28 days', '35 days',
'27 days', '35 days', '29 days', '28 days', '35 days',
'28 days', '28 days', '28 days', '35 days', '28 days',
'35 days', '28 days', '27 days', '35 days', '29 days',
'28 days', '35 days', '28 days', '35 days', '28 days',
'26 days'],
dtype='timedelta64[ns]', freq=None)
И, если необходимо, добавьте целые числа TimedeltaIndex.days
:
delta = (dates[:-1] - dates[1:]).days
print (delta)
Int64Index([30, 28, 35, 27, 29, 35, 27, 36, 27, 28, 29, 35, 28, 28, 35, 27, 35,
29, 28, 35, 28, 28, 28, 35, 28, 35, 28, 27, 35, 29, 28, 35, 28, 35,
28, 26],
dtype='int64')
delta = (dates[:-1] - dates[1:]).days.tolist()
print (delta)
[30, 28, 35, 27, 29, 35, 27, 36, 27, 28, 29, 35, 28, 28, 35, 27, 35, 29, 28,
35, 28, 28, 28, 35, 28, 35, 28, 27, 35, 29, 28, 35, 28, 35, 28, 26]