Python Pandas функции прокрутки

Я не уверен, что понимаю параметрmin_periods в пандахrolling функции: почему он должен быть меньше, чемwindow параметр? Я хотел бы вычислить (например) скользящий максимум минус скользящий мин с окном из десяти значений, НО я хочу подождать, может быть, 20 значений перед началом вычислений:

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, по умолчанию None

Минимальное количество наблюдений в окне, которое должно иметь значение (в противном случае результат равен NA)

Я не был внимателен к деталям "в окне" здесь ... Тогда какой самый эффективный способ достичь того, чего я пытаюсь достичь? Должен ли я сделать что-то вроде:

roll = df.loc[20:,'A'].rolling(window=10)
df['C'] = roll.max() - roll.min()

Есть ли более эффективный способ?

Ответы на вопрос(2)

Ваш ответ на вопрос