Вы можете разрезать два раза и генерировать данные для вашей регрессии:
data = df[(df.index > start_date) & (df.index <= end_date)]
valuelist = data.values
time = data.index.total_seconds()
Затем вы можете использовать numpy для подгонки строки к данным
import numpy as np
# 1d line y= mx +c
m,c = np.polyfit(time, valuelist, 1)
и получите желаемое время в секундах
from datetime import datetime
datetime_s = datetime.strptime('Jun 1 2005 3:00PM', '%b %d %Y %I:%M%p').strftime('%s')
# y = mx +c
result = m*datetime_s + c