编程语言
首页 > 编程语言> > python-熊猫数据框:使用线性插值重新采样

python-熊猫数据框:使用线性插值重新采样

作者:互联网

我正在尝试使用一种相当基本的重采样方法来处理熊猫数据框.我的数据框df由日期时间条目索引并包含价格

                               price
datetime                            
2000-08-16 09:29:55.755000  7.302786
2000-08-16 09:30:10.642000  7.304059
2000-08-16 09:30:26.598000  7.304435
2000-08-16 09:30:41.372000  7.304314
2000-08-16 09:30:56.718000  7.304334

我想将此采样降低到5分钟.运用

df.resample(rule='5Min',how='last',closed='left')

在我的数据中以最左边的最接近点为5分钟的倍数;同样

df.resample(rule='5Min',how='first',closed='left')

将关闭点指向右侧.
但是,我想在左右点之间进行线性插值,例如如果我的df包含两个连续的条目

time t1, price p1
time t2, price p2

t1<t<t2 where t is a multiple of 5min

那么重新采样的数据框应具有

time t, price p1+(t-t1)/(t2-t1)*(p2-p1)

解决方法:

尝试创建两个单独的数据框,对它们进行reset_index(以便它们具有相同的数字索引),对其进行fillna运算,然后对df1和df2进行数学运算.例如:

df1 = df.resample(rule='5Min',how='last',closed='left').reset_index().fillna(method='ffill')
df2 = df.resample(rule='5Min',how='first',closed='left').reset_index().fillna(method='ffill')

dt = df1.datetime - df2.datetime
px_fld = df1.price + ...

这样的事情应该可以解决.

标签:python,pandas,datetime,time-series
来源: https://codeday.me/bug/20191009/1878721.html