Повторная выборка временных рядов: 5-минутные интервалы, объясненные примерами кода

В анализе временных рядов под повторной выборкой понимается процесс изменения частоты временного ряда. Одним из распространенных методов повторной выборки является преобразование данных в фиксированные интервалы, например повторная выборка с 5-минутными интервалами. В этой статье мы рассмотрим различные методы преобразования данных временных рядов в 5-минутные интервалы, а также приведем примеры кода на Python.

Метод 1: библиотека Pandas
Pandas — это популярная библиотека манипулирования данными на Python, обеспечивающая удобный способ повторной выборки данных временных рядов. Вот пример того, как преобразовать временной ряд в 5-минутные интервалы с помощью Pandas:

import pandas as pd
# Assuming 'df' is a DataFrame with a 'datetime' column
df['datetime'] = pd.to_datetime(df['datetime'])
df = df.set_index('datetime')
# Resample to 5-minute intervals
resampled_df = df.resample('5Min').mean()

Метод 2: библиотека NumPy
NumPy — это фундаментальный пакет для научных вычислений на Python. Хотя он не имеет встроенной функции повторной выборки, мы можем использовать его функции numpy.arangeи numpy.interpдля достижения желаемой повторной выборки:

import numpy as np
# Assuming 'timestamps' and 'values' are numpy arrays
timestamps = np.array(timestamps)
values = np.array(values)
# Convert timestamps to minutes
minutes = (timestamps - timestamps[0]) / np.timedelta64(1, 'm')
# Create new timestamps at 5-minute intervals
new_timestamps = np.arange(minutes[0], minutes[-1], 5)
# Interpolate values at new timestamps
new_values = np.interp(new_timestamps, minutes, values)

Метод 3: повторная выборка с индексом Datetime
Если ваши данные временных рядов находятся в DataFrame Pandas с индексом datetime, вы можете использовать функцию date_rangeдля создания нового индекса datetime с 5- минутные интервалы, а затем объединить его с исходным DataFrame:

import pandas as pd
# Assuming 'df' is a DataFrame with a datetime index
new_index = pd.date_range(start=df.index.min(), end=df.index.max(), freq='5Min')
resampled_df = df.reindex(new_index)

В этой статье мы рассмотрели три различных метода преобразования данных временных рядов в 5-минутные интервалы. В первом методе использовалась встроенная функция повторной выборки библиотеки Pandas. Второй метод продемонстрировал, как добиться повторной выборки с помощью функций NumPy arangeи interp. Последний метод показал, как использовать индекс даты и времени и функцию date_rangeв Pandas для выполнения задачи повторной выборки. В зависимости от вашего конкретного варианта использования и формата данных вы можете выбрать метод, который лучше всего соответствует вашим потребностям.