Funções de rolagem do Python Pandas

Não sei se entendi o parâmetromin_periods em pandasrolling funções: por que ele precisa ser menor que owindow parâmetro? Gostaria de calcular (por exemplo) o rolamento máximo menos rolamento mínimo com uma janela de dez valores, MAS eu quero esperar talvez 20 valores antes de iniciar os cálculos:

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()

Estou tendo o erro a seguir:

ValueError: Invalid min_periods size 20 greater than window 10

Eu pensei quemin_periods estava lá para dizer quantos valores a função teve que esperar antes de iniciar os cálculos. A documentação diz:

min_periods: int, padrão Nenhum

Número mínimo de observações na janela necessárias para ter um valor (caso contrário, o resultado é NA)

Eu não tinha me preocupado com os detalhes "na janela" aqui ... Então, qual seria a maneira mais eficiente de conseguir o que estou tentando alcançar? Devo fazer algo como:

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

Existe uma maneira mais eficiente?

questionAnswers(2)

yourAnswerToTheQuestion