簡體   English   中英

熊貓-如何計算前滾10 /后滾10平均絕對偏差?

[英]Pandas- how to compute a rolling forward 10/backward 10 mean absolute deviation?

我一直在閱讀關於rolling()函數的文檔,但似乎找不到一種同時合並前向和后向窗口的方法。 我想做的是計算前10個事件和過去10個事件的平均絕對偏差(甚至標准偏差),以進行離群分析。

通過這樣做,我能夠以一種怪異的方式計算出前/過去10的均值

df = pd.DataFrame({ 'date': pd.date_range(start='1/1/2017', end='12/31/2017'),
        'value': np.random.rand(365)})

first_10 = df.rolling(window=10, win_type='triang')['value'].mean().shift().reset_index()

last_10 = df[::-1].rolling(window=10, win_type='triang')['value'].mean().shift().reset_index()

接着

pd.merge(first_10, last_10, on = ['level_1']).set_index(['level_1']).mean(axis=1)

但是,因為您不能僅將兩個MAD求平均值,以獲取該窗口的MAD,所以我無法做到這一點。 有誰有更強大的方法來使用滾動函數進行此類計算? 感覺好像必須使用某種移位功能。

感謝對此的幫助。

你可以做這樣的事情

mad = lambda x: np.fabs(x - x.mean()).mean()

s.rolling(window=60).apply(mad, raw=True).plot(style='k')

從熊貓文件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM