Интерполировать между двумя временами даты, используя панд - PullRequest
1 голос
/ 26 марта 2019

Мне нужно интерполировать температуру в 15:00:00 ежедневно из четырех ежедневных измерений температуры в разное время.

Вот показания двух дней ниже, которые показывают, что данные записываются не так равномерно, каждый день:

datetime    temp_obs
2011-12-11 05:29:45 16.02
2011-12-11 11:28:19 15.79
2011-12-11 17:26:52 16.15
2011-12-11 23:25:26 16.71
2011-12-12 05:24:00 16.36
2011-12-12 11:22:33 16.02
2011-12-12 17:21:07 16.24
2011-12-12 23:19:40 16.63

Буду признателен за любые предложения по формулированию интерполяции значения в 15:00:00 с использованием панд или любого другого инструмента.Спасибо

1 Ответ

1 голос
/ 26 марта 2019

Вы можете разрезать два раза и генерировать данные для вашей регрессии:


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
...