Mam jeden zestaw wartości mierzony w regularnych odstępach czasu. Powiedzieć:Interpolowanie jednej serii czasowej na inną w pandach
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)
A inny zestaw bardziej arbitralne razy, na przykład, (w rzeczywistości te czasy nie są regularne sekwencja)
ts_rng = pd.date_range('2013-01-01 01:11:21', periods=7, freq='87Min')
ts = pd.Series(index=ts_rng)
Chcę poznać wartość danych interpolowana w czasach w ts.
mogę to zrobić w 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)
Ale czuję pandy ma tę funkcjonalność gdzieś w resample
, reindex
itp ale nie mogę dość je zdobyć.
Trzeba użyć method = „wartości” dla kluczowych argumentów w interpolować, aby uzyskać taki sam odpowiedź jak w numpy pd.concat ([data, ts]). sort_index(). interpolate (method = 'values') [ts.index] – elfnor
Zwróć uwagę na indeksy, które pojawiają się zarówno w ts, jak iw danych – tschm