Скользящие средние и работа с временными рядами
Работа с временными рядами (time series
) — одна из сильных сторон библиотеки pandas
. В этом разделе рассмотрим, как использовать pandas
для обработки временных рядов и вычисления скользящих средних.
Временные ряды в pandas
pandas
Создание временных рядов
В pandas
временные ряды обычно представлены с помощью DatetimeIndex
, который можно установить как индекс DataFrame. Это позволяет легко манипулировать данными и выполнять различные временные операции.
Пример:
Вывод:
Основные операции с временными рядами
Ресемплирование (
resample
): изменение частоты временного ряда (например, агрегация по неделям, месяцам и т.д.).Сдвиги (
shift
): сдвиг временного ряда на определенное количество временных единиц.Операции скользящих окон: применение функций к скользящим окнам в данных.
Пример ресемплирования:
Вывод:
Скользящие средние
Что такое скользящие средние?
Скользящее среднее — это среднее значение по определенному окну данных. Этот метод часто используется для сглаживания временных рядов и выявления трендов.
Вычисление скользящих средних
В pandas
скользящие средние можно вычислить с помощью метода .rolling()
, который применяет функцию на определенное скользящее окно.
Пример:
Вывод:
Описание:
Первая и вторая строки имеют значение
NaN
, так как для вычисления скользящего среднего по окну из 3 элементов нужно минимум 3 точки данных.Третья строка — это среднее значение первых трех элементов: (7+3+9)/3 = 6.33.
Взвешенные скользящие средние
Иногда требуется придать больший вес более новым значениям в окне. Это можно сделать с помощью метода .apply()
.
Пример:
Вывод:
Описание:
Взвешенное скользящее среднее вычисляется с учетом весов: 0.1, 0.3 и 0.6, где 0.6 соответствует самому последнему значению в окне.
Другие методы работы с временными рядами
Сдвиг временных рядов
Метод .shift()
позволяет сдвинуть данные на определенное количество временных единиц. Это полезно, например, для расчета изменений или для создания лагов.
Пример:
Вывод:
Описание:
Значение столбца
Shifted_1
на одну строку отстает от значенияValue
.
Дифференцирование временных рядов
Метод .diff()
вычисляет разницу между значениями временного ряда. Это полезно для анализа изменений или расчета первой разности ряда.
Пример:
Вывод:
Описание:
Разница между текущим и предыдущим значением отображается в столбце
Diff
.
Заключение
Работа с временными рядами в pandas
— это мощный инструмент для анализа данных, включающий множество полезных методов и функций, таких как ресемплирование, сдвиги, дифференцирование и скользящие окна. Скользящие средние позволяют сглаживать данные и выявлять тренды, что особенно полезно для анализа финансовых данных и других временных рядов.
Last updated