How do I calculate a rolling mean with custom weights in pandas?

后端 未结 1 724
忘掉有多难
忘掉有多难 2021-01-15 05:13

The Pandas documentation http://pandas.pydata.org/pandas-docs/stable/computation.html has an example of how to calculate moving averages:

ser = pd.Series(np.         


        
1条回答
  •  孤街浪徒
    2021-01-15 05:37

    I'm not Math expert, but stahlous explain what you need here.

    I try test it:

    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
    

    I setting window to ndarray ([2,2,2]) and calculated weighted sum (rm1) and weighted mean (rm2).

    pandas.rolling_window:

    window : int or ndarray:
    Weighting window specification. If the window is an integer, then it is treated as the window length and win_type is required

    mean : boolean, default True
    If True computes weighted mean, else weighted sum

    0 讨论(0)
提交回复
热议问题