我不确定我是否理解参数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