栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python使用线性插值对不规则时间序列进行正则化

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python使用线性插值对不规则时间序列进行正则化

这需要一些工作,但是请尝试一下。基本思想是找到与每个重采样点最近的两个时间戳并进行插值。

np.searchsorted
用于查找最接近重采样点的日期。

# empty frame with desired indexrs = pd.Dataframe(index=df.resample('15min').iloc[1:].index)# array of indexes corresponding with closest timestamp after resampleidx_after = np.searchsorted(df.index.values, rs.index.values)# values and timestamp before/after resamplers['after'] = df.loc[df.index[idx_after], 'Values'].valuesrs['before'] = df.loc[df.index[idx_after - 1], 'Values'].valuesrs['after_time'] = df.index[idx_after]rs['before_time'] = df.index[idx_after - 1]#calculate new weighted valuers['span'] = (rs['after_time'] - rs['before_time'])rs['after_weight'] = (rs['after_time'] - rs.index) / rs['span']# I got errors here unless I turn the index to a seriesrs['before_weight'] = (pd.Series(data=rs.index, index=rs.index) - rs['before_time']) / rs['span']rs['Values'] = rs.eval('before * before_weight + after * after_weight')

毕竟,希望正确的答案是:

In [161]: rs['Values']Out[161]: 1992-08-27 08:00:00    28.0114291992-08-27 08:15:00    28.3139391992-08-27 08:30:00    28.2230301992-08-27 08:45:00    28.9520001992-08-27 09:00:00    29.908571Freq: 15T, Name: Values, dtype: float64


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/638829.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号