У меня есть один набор значений, измеренный в обычное время. Скажи:Интерполяция одного временного ряда на другой в пандах
import pandas as pd
import numpy as np
rng = pd.date_range('2013-01-01', periods=12, freq='H')
data = pd.Series(np.random.randn(len(rng)), index=rng)
И еще множество более произвольных моментов времени, например, (в действительности эти времена не регулярная последовательность)
ts_rng = pd.date_range('2013-01-01 01:11:21', periods=7, freq='87Min')
ts = pd.Series(index=ts_rng)
Я хочу знать значение данных интерполированных во времена в тс.
я могу сделать это в NumPy:
x = np.asarray(ts_rng,dtype=np.float64)
xp = np.asarray(data.index,dtype=np.float64)
fp = np.asarray(data)
ts[:] = np.interp(x,xp,fp)
Но я чувствую панд имеет такую функциональность, где-то в resample
, reindex
и т.д., но я совсем не могу получить его.
Вы должны использовать метод = «значение» для ключевых аргументов в интерполировать, чтобы получить то же самое ответьте как в numpy pd.concat ([data, ts]). sort_index(). interpolate (method = 'values') [ts.index] – elfnor
Обратите внимание на индексы, отображаемые как в ts, так и в данных – tschm