6

定期的に測定された値のセットが 1 つあります。言う:

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)

その時点で補間されたデータの値を ts で知りたいです。
私は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)

しかし、パンダにはこの機能が などのどこかにあると思いますが resamplereindexうまく取得できません。

4

3 に答える 3

7

別の datetime_index で時系列 ts を評価したいとします。このインデックスと ts のインデックスは重複する場合があります。次の groupby トリックを使用することをお勧めします。これにより、疑わしい二重スタンプが本質的に取り除かれます。次に、前方補間しますが、より高度な方法を自由に適用できます

def interpolate(ts, datetime_index):
    x = pd.concat([ts, pd.Series(index=datetime_index)])
    return x.groupby(x.index).first().sort_index().fillna(method="ffill")[datetime_index]
于 2014-11-10T10:18:08.747 に答える