如何使用熊猫中的自定义权重计算滚动平均值?

时间:2015-09-03 06:05:47

标签: python pandas moving-average

Pandas文档http://pandas.pydata.org/pandas-docs/stable/computation.html有一个如何计算移动平均值的示例:

ser = pd.Series(np.random.randn(10), index=pd.date_range('1/1/2000', periods=10))
pd.rolling_window(ser, 5, 'boxcar')

第二行计算一个滚动平均值,窗口为5,并且五个观测值中的每一个都具有相等的权重。文档非常引人注意使用自定义权重的可能性(“当传递win_type而不是明确指定权重时......”),但你是如何做到的?

谢谢!

1 个答案:

答案 0 :(得分:1)

我不是数学专家,但 stahlous 解释你需要什么here

我试试吧:

import pandas as pd

ser = pd.Series([1,1,1], index=pd.date_range('1/1/2000', periods=3))
print ser

rm1 = pd.rolling_window(ser, window=[2,2,2], mean=False)
rm2 = pd.rolling_window(ser, window=[2,2,2]) #, mean=True

print rm1
#
#2000-01-01   NaN
#2000-01-02   NaN
#2000-01-03     6
#Freq: D, dtype: float64
print rm2
#
#2000-01-01   NaN
#2000-01-02   NaN
#2000-01-03     1
#Freq: D, dtype: float64

我将window设置为ndarray[2,2,2])并计算加权总和(rm1)和加权平均值(rm2)。

pandas.rolling_window

  

窗口 int或ndarray
  加权窗口规范。如果窗口是整数,则将其视为窗口长度,并且需要win_type

     

表示布尔值,默认为True
  如果True计算加权平均值,则加权和