Pandas 滚动平均的行为
在使用pandas函数时,我注意到添加一个额外的参数会改变输出,并且只在开头填充Pandas 滚动平均的行为,pandas,Pandas,在使用pandas函数时,我注意到添加一个额外的参数会改变输出,并且只在开头填充nans,而不是结尾 In[1]: import pandas as pd In[2]: pd.stats.moments.rolling_mean(np.arange(12),6) Out[2]: array([ nan, nan, nan, nan, nan, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5]) 我预计会有6个nans:3个在开头,3个
nans
,而不是结尾
In[1]: import pandas as pd
In[2]: pd.stats.moments.rolling_mean(np.arange(12),6)
Out[2]:
array([ nan, nan, nan, nan, nan, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,
8.5])
我预计会有6个nan
s:3个在开头,3个在结尾。我错过了什么
/Mpandas实现使用前n个值的滚动窗口,这在财务中通常是这样做的(参见此) 我想最好能有一个选项来指定是从任何一方获取值,还是只使用以前的值——您可以在上面提出问题
len(np.arange(12))
和len(pd.stats.moments.rolling)的意思是(np.arange(12),6))
正如我所期望的那样,两者都等于12——你期望的结果是什么?我也遇到过熊猫的滚动统计数据。我想说,对于非时间相关的测量,例如海拔与距离的关系,基于中心的移动窗口更有意义,因为它不会引入滞后或移位。现在对于基于时间的度量,我认为只取以前的值更有意义,因为如果“未来”值影响了当前值,则在概念上是错误的。看到它是在一个相当低的级别上实现的,这是比较舒服的。我的数据是相对湿度时间序列,但数据具有重复的锯齿效果,从而创建“锯齿状”曲线,而不是平滑曲线。我使用了pandas函数,结果与我自己能够创建的结果相匹配:一条平滑曲线,取前6个点和后6个点的平均值。当然,您可以指定滞后时间和提前期。结果看起来很好。谢谢你的帮助。