簡介
在資料統計中,經常需要進行一些範圍操作,這些範圍我們可以稱之為一個window 。pandas提供了一個rolling方法,通過滾動window來進行統計計算。
本文将會探讨一下rolling中的window用法。
滾動視窗
我們有5個數,我們希望滾動統計兩個數的和,那麼可以這樣:
rolling 對象可以通過for來周遊:
pandas中有四種window操作,我們看下他們的定義:
名稱
方法
傳回對象
是否支援時間序列
是否支援鍊式groupby操作
固定或者可滑動的視窗
<code>rolling</code>
yes
scipy.signal庫提供的權重非矩形視窗
<code>window</code>
no
累積值的視窗
<code>expanding</code>
值上的累積和指數權重視窗
<code>ewm</code>
<code>exponentialmovingwindow</code>
yes (as of version 1.2)
看一個基于時間rolling的例子:
設定min_periods可以指定window中的最小的nan的個數:
預設情況下window的統計是以最右為準,比如window=5,那麼前面的0,1,2,3 因為沒有達到5,是以為nan。
可以對這種方式進行修改,設定 center=true 可以從中間統計:
weighted window 權重視窗
使用 win_type 可以指定權重視窗的類型。其中win_type 必須是scipy.signal 中的window類型。
舉幾個例子:
擴充視窗
擴充視窗會産生聚合統計資訊的值,其中包含該時間點之前的所有可用資料。
指數權重視窗
指數權重視窗與擴充視窗相似,但每個先驗點相對于目前點均按指數權重。
權重計算的公式是這樣的:
y_t=Σ^t_{i=0}{w_ix_{t-i}\over{Σ^t_{i=0}w_i}}yt=Σi=0tΣi=0twiwixt−i
其中x_txt是輸入,y_tyt是輸出,w_iwi是權重。
ew有兩種模式,一種模式是 <code>adjust=true</code> ,這種情況下 error: font metrics not found for font: .
一種模式是 <code>adjust=false</code> ,這種情況下:
parseerror: katex parse error: undefined control sequence: \n at position 8: y_0=x_0\̲n̲
y_t=(1-a)y_{t-1}+ax_t
其中 0<