【发布时间】:2020-01-04 11:57:46
【问题描述】:
假设我有一个关于熊猫的每小时系列,假设来源是常规的,但它是有缺陷的。如果我想将其插入 15 分钟,pandas API 提供resample(15min).interpolate('cubic')。它插值到新的时间并提供对插值限制的一些控制。样条线有助于完善系列并填补小空白。具体来说:
tndx = pd.date_range(start="2019-01-01",end="2019-01-10",freq="H")
tnum = np.arange(0.,len(tndx))
signal = np.cos(tnum*2.*np.pi/24.)
signal[80:85] = np.nan # too wide a gap
signal[160:168:2] = np.nan # these can be interpolated
df = pd.DataFrame({"signal":signal},index=tndx)
df1= df.resample('15min').interpolate('cubic',limit=9)
现在假设我有一个不规则的日期时间索引。在下面的例子中,第一次是常规时间点,第二次是大间隙,最后一次是穿插的短暂间隙。
tndx2 = pd.DatetimeIndex('2019-01-04 00:00','2019-01-04 10:17','2019-01-07 16:00')
如何从原始系列(每小时)插入到这个不规则的时间系列?
是构建包含原始数据和目标数据的系列的唯一选择吗?我该怎么做?实现对独立不规则索引进行插值并施加间隙限制的目标最经济的方法是什么?
【问题讨论】:
-
您可以将原始数据
resample转换为1s,然后使用reindex,或者对插值后的数据进行索引切片。 -
谢谢。我认为这可以工作,如果您知道“最小公分母”(在这里说 1 分钟而不是 1 秒),它可能会完成这项工作。但它对我的上下文来说很重,特别是如果插值器本身很昂贵。跨度>
标签: python pandas time-series interpolation