将一个时间序列插入到 pandas 中的另一个时间序列中

2024-06-02

我有一组定期测量的值。说:

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)

但我觉得 pandas 在某个地方有这个功能resample, reindex等等,但我不太明白。


您可以连接两个时间序列并按索引排序。由于第二个系列中的值是NaN你可以interpolate只需选择代表第二个系列中的点的值:

 pd.concat([data, ts]).sort_index().interpolate().reindex(ts.index)

or

 pd.concat([data, ts]).sort_index().interpolate()[ts.index]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将一个时间序列插入到 pandas 中的另一个时间序列中 的相关文章

随机推荐