Расчет скользящих средних с пандами - PullRequest
3 голосов
/ 19 апреля 2019

Мне нужно вычислить некоторые скользящие средние значения в кадре данных, и я действительно не знаю, с чего начать.

Я знаю, хочу ли я выбрать ячейку за 10 дней вперед, скажу, что я бы сделал df.shift(-10),но я рассчитываю вычислить среднее значение между 10 и 15 днями вперед, скажем.

Итак, я думаю, что df.rolling(-10,-15).mean(), если я пытался вычислить только скользящее среднее, идущееподдержка времени df.rolling (15, 10) .mean () будет работать отлично, и я подумал о том, чтобы просто вычислить средние значения, как это, и затем каким-то образом сдвинуть данные.

Любая помощь будет великолепна

Большое спасибо

1 Ответ

2 голосов
/ 19 апреля 2019

Можно рассчитать скользящее среднее на 5 дней вперед, а затем shift, что еще на 10 периодов. Поскольку отрицательные значения в rolling недопустимы, вы можете инвертировать ось, вычислить в обратном направлении, а затем снова инвертировать (см. Как использовать функции Pandas Rolling_ * на прогнозной основе ):

df = pd.DataFrame(np.random.rand(100, 2))
df[::-1].rolling(5).mean()[::-1].shift(-10)
...