[英]Rolling mean with customized window with Pandas
有沒有辦法自定義rolling_mean函數的窗口?
data
1
2
3
4
5
6
7
8
假設窗口設置為2,即計算觀察前后的2個數據點的平均值。 說第3次觀察。 在這種情況下,我們將有(1+2+3+4+5)/5 = 3
。 等等等等。
使用向前(或向后)窗口計算通常的滾動平均值,然后使用shift
方法根據需要重新定位它。
data_mean = pd.rolling_mean(data, window=5).shift(-2)
如果要在觀察前后平均超過2個數據點(總共5個數據點),則使window=5
。
例如,
import pandas as pd
data = pd.Series(range(1, 9))
data_mean = pd.rolling_mean(data, window=5).shift(-2)
print(data_mean)
產量
0 NaN
1 NaN
2 3
3 4
4 5
5 6
6 NaN
7 NaN
dtype: float64
正如kadee指出的那樣 ,如果你希望將滾動平均值居中,那么就使用
pd.rolling_mean(data, window=5, center=True)
對於更新版本的Pandas(請參閱0.23.4文檔https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.rolling.html ),您不再擁有rolling_mean。 相反,你會使用
DataFrame.rolling(window, min_periods=None, center=False, win_type=None, on=None, axis=0, closed=None)
對於您的示例,它將是:
df.rolling(5,center=True).mean()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.