Alinhar à esquerda um objeto rolante de pandas
Usando o pandas 0.18.1, eu gostaria de obter a média móvel de um quadro de dados de uma coluna. Desde a versão 0.18.0, isso é feito com objetos rolling (). O padrão para esses objetos rolantes deve ser justificado à direita. Há um argumento booleano que você pode passar, center = True, para alinhar o objeto rolante ao valor central, mas não parece haver uma maneira de alinhá-lo à esquerda. Aqui está um exemplo:
df = pandas.DataFrame({'A': [2,3,6,8,20, 27]})
df
A
0 2
1 3
2 6
3 8
4 20
5 27
O método padrão se alinha automaticamente à direita, portanto, não há valor nas duas primeiras indecies com uma janela de tamanho três:
df.rolling(window=3).mean()
A
0 NaN
1 NaN
2 3.666667
3 5.666667
4 11.333333
5 18.333333
Podemos alinhar centralmente a operação assim:
df.rolling(window=3).mean(center=True)
A
0 NaN
1 3.666667
2 5.666667
3 11.333333
4 18.333333
5 NaN
Mas o que estou procurando é o seguinte:
df.rolling(3).mean()
A
0 3.666667
1 5.666667
2 11.333333
3 18.333333
4 NaN
5 NaN
Eu posso fazer isso com o alinhamento à direita padrão e, em seguida, re-indexando-o, ou revertendo a ordem das linhas e fazendo-o "alinhado à direita", mas essas são soluções alternativas para o que deveria ser uma linha reta. operação de avanço.