Как написать реализацию скользящего среднего для временного ряда? Имеется набор дат в формате 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). А как во временных рядах вообще работают с таким форматом?
Для вычисления скользящего среднего для временного ряда с подобным форматом дат можно использовать библиотеку 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'.
Надеюсь, это поможет вам реализовать скользящее среднее для вашего временного ряда.
Для вычисления скользящего среднего для временного ряда с подобным форматом дат можно использовать библиотеку 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'.
Надеюсь, это поможет вам реализовать скользящее среднее для вашего временного ряда.