Работа с временными рядами в pandas
Создание временного ряда
Для создания временного ряда в Pandas можно использовать класс DatetimeIndex
. Пример:
import pandas as pd
dates = pd.date_range('2023-01-01', periods=5, freq='D')
data = pd.Series(range(5), index=dates)
print(data)
Результат:
2023-01-01 0
2023-01-02 1
2023-01-03 2
2023-01-04 3
2023-01-05 4
Freq: D, dtype: int64
Здесь мы создали временной ряд с 5 элементами и дневной частотой (freq='D'
).
Выбор данных по времени
Pandas позволяет легко выбирать данные по временному диапазону. Пример:
print(data['2023-01-02':'2023-01-04'])
Результат:
2023-01-02 1
2023-01-03 2
2023-01-04 3
Freq: D, dtype: int64
Мы выбрали данные за период с 2 по 4 января 2023 года.
Ресемплинг
Ресемплинг позволяет изменять частоту временного ряда. Пример перехода от дневных данных к месячным с суммированием:
monthly_data = data.resample('M').sum()
print(monthly_data)
Результат:
2023-01-31 10
Freq: M, dtype: int64
Мы просуммировали дневные данные до месячных.
Сдвиги и разности
Pandas позволяет легко вычислять сдвиги (лаги) и разности значений временного ряда. Пример:
data_shift = data.shift(1)
data_diff = data - data_shift
print(data_diff)
Результат:
2023-01-01 NaN
2023-01-02 1.0
2023-01-03 1.0
2023-01-04 1.0
2023-01-05 1.0
Freq: D, dtype: float64
Мы вычислили разности между текущими и предыдущими значениями ряда.
Скользящие окна
Скользящие окна позволяют вычислять статистики в окне определенной ширины. Пример расчета скользящего среднего:
rolling_mean = data.rolling(window=3).mean()
print(rolling_mean)
Результат:
2023-01-01 NaN
2023-01-02 NaN
2023-01-03 1.0
2023-01-04 2.0
2023-01-05 3.0
Freq: D, dtype: float64
Мы рассчитали скользящее среднее в окне шириной 3 .
Pandas предоставляет множество удобных инструментов для работы с временными рядами. Мы рассмотрели основные операции, такие как создание рядов, выбор данных по времени, ресемплинг, сдвиги, разности и скользящие окна. Эти инструменты позволяют эффективно анализировать и обрабатывать временные данные.