我试图找到围绕每个观察值的滚动中位数。假设我的窗口大小为4。
然后,我希望我的窗口使用中心之前的两个观测值和中心之后的两个观测值找到中值,从而排除居中的观测值。
如果我使用代码
df.loc[:,'MED'] = df['PRICE'].rolling(window=4, center=True).median()
我得到以下输出
PRICE MED
SYMBOL DATE_TIME
BA 2009-05-01 09:30:01 40.31 NaN
2009-05-01 09:30:08 40.38 NaN
2009-05-01 09:30:19 40.52 40.45
2009-05-01 09:30:20 40.53 40.45
2009-05-01 09:30:21 40.37 NaN
但是,我希望输出是
PRICE MED
SYMBOL DATE_TIME
BA 2009-05-01 09:30:01 40.31 NaN
2009-05-01 09:30:08 40.38 NaN
2009-05-01 09:30:19 40.52 40.375
2009-05-01 09:30:20 40.53 NaN
2009-05-01 09:30:21 40.37 NaN
当然,使用5的窗口大小也无济于事,因为它找到了5个观测值的中位数而不是4个观测值
有什么建议吗?