Как написать реализацию скользящего среднего для временного ряда? Имеется набор дат в формате datetime типа: datetime.datetime(2017, 12, 8, 18, 0).
Имеется какое-то значение под каждую дату.
Дат/значений - много.
Обернул всё в датафрейм, попробовал реализовать простейший метод скользящего среднего с хабра, а точнее - такой:def moving_average(series, n):
return np.average(series[-n:])
Здесь series - собственно, массив времен, а прогноз выполняется на n часов/дней вперёд.
Так вот.
Вычислить не удаётся, так как интерпретатор не может сложить: datetime.datetime(2017, 12, 8, 18, 0) + datetime.datetime(2017, 12, 8, 19, 0).
А как во временных рядах вообще работают с таким форматом?

21 Авг 2019 в 06:22
236 +1
0
Ответы
1

Для вычисления скользящего среднего для временного ряда с подобным форматом дат можно использовать библиотеку pandas. Вот пример кода, который демонстрирует, как можно вычислить скользящее среднее для временного ряда:

import pandas as pd
# Создание временного ряда с данными
dates = [datetime.datetime(2017, 12, 8, 18, 0),
datetime.datetime(2017, 12, 8, 19, 0),
datetime.datetime(2017, 12, 8, 20, 0),
# Другие даты
]
values = [10, 20, 30, # Другие значения
]
# Создание датафрейма
df = pd.DataFrame({'date': dates, 'value': values})
# Сортировка по дате
df = df.sort_values('date')
# Вычисление скользящего среднего за 2 точки
df['moving_avg'] = df['value'].rolling(window=2).mean()
print(df)

В этом примере мы создаем датафрейм с данными временного ряда (дата и значение), сортируем его по дате и затем используем метод .rolling() с параметром window=2 для вычисления скользящего среднего за 2 точки. Результат будет добавлен в новый столбец 'moving_avg'.

Надеюсь, это поможет вам реализовать скользящее среднее для вашего временного ряда.

20 Апр 2024 в 13:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир