我不確定我是否理解參數min_periods
在Pandas rolling
函數中:爲什麼它必須小於參數window
? 我想計算(例如)滾動最大零下十個值的窗口滾動分鐘,但我想開始計算之前的等待也許20值:Python Pandas滾動函數
In[1]: import pandas as pd
In[2]: import numpy as np
In[3]: df = pd.DataFrame(columns=['A','B'], data=np.random.randint(low=0,high=100,size=(100,2)))
In[4]: roll = df['A'].rolling(window=10, min_periods=20)
In[5]: df['C'] = roll.max() - roll.min()
In[6]: roll
Out[6]: Rolling [window=10,min_periods=20,center=False,axis=0]
In[7]: df['C'] = roll.max()-roll.min()
我收到以下錯誤:
ValueError: Invalid min_periods size 20 greater than window 10
我以爲min_periods
是在那裏告訴開始計算之前函數必須等待多少個值。該文件說:
min_periods : int, default None
Minimum number of observations in window required to have a value (otherwise result is NA)
我一直沒小心這裏的「窗口」詳細... 那麼這將是實現我所試圖達到的最有效的方法是什麼?我是否應該這樣做:
roll = df.loc[20:,'A'].rolling(window=10)
df['C'] = roll.max() - roll.min()
有沒有更高效的方法?
如果窗口是10個觀察寬,但你需要20個觀察到做一個計算,多少計算,你認爲你將能夠完成? –
你的句子''但是我想在開始計算之前等待20個值:'不清楚。我想你對如何計算滾動計算感到困惑。 –
我承認我的問題不是很清楚。例如,我想計算2016年1月1日開始的時間系列指數數據集上的滾動平均值。我想計算除1月份以外的2016年滾動平均值。 – Prikers