Методы повторной выборки времени для фреймов данных в Python: подробное руководство

Данные временных рядов часто требуют анализа и визуализации на разных временных интервалах. В Python Pandas — это мощная библиотека, предоставляющая различные методы повторной выборки временных данных в DataFrames. В этой статье мы рассмотрим несколько методов повторной выборки с использованием Pandas, а также примеры кода, которые помогут вам эффективно работать с данными временных рядов.

  1. Понижение выборки.
    Понижение выборки предполагает уменьшение частоты данных временных рядов. Это полезно, когда у вас есть данные с более высокой частотой, чем требуется. Вот пример понижения частоты данных до более низкой частоты, например преобразования ежедневных данных в ежемесячные:
import pandas as pd
# Assume 'df' is a DataFrame with a 'datetime' column
df.resample('M', on='datetime').sum()
  1. Повышающая дискретизация.
    Повышающая дискретизация предполагает увеличение частоты данных временных рядов. Это полезно, когда у вас есть данные с более низкой частотой и вы хотите интерполировать или заполнить пробелы. Вот пример повышения частоты данных, например преобразования ежемесячных данных в ежедневные:
import pandas as pd
# Assume 'df' is a DataFrame with a 'datetime' column
df.resample('D', on='datetime').ffill()
  1. Агрегация.
    Агрегация – это распространенный метод повторной выборки, который предполагает суммирование данных за определенный период времени. Это полезно для получения таких статистических данных, как среднее значение, сумма или количество. Вот пример агрегирования данных для расчета среднего значения за месяц:
import pandas as pd
# Assume 'df' is a DataFrame with a 'datetime' column and a 'value' column
df.resample('M', on='datetime').mean()
  1. Скользящие окна.
    Скользящие окна позволяют рассчитывать статистику в течение скользящего временного окна. Это полезно для анализа тенденций, скользящих средних или обнаружения аномалий. Вот пример расчета скользящего среднего за 7 дней:
import pandas as pd
# Assume 'df' is a DataFrame with a 'datetime' column and a 'value' column
df.set_index('datetime').rolling('7D').mean()
  1. Пользовательская повторная выборка.
    Pandas также обеспечивает гибкость для определения пользовательских функций повторной выборки. Вы можете создавать свои собственные функции для применения к каждой группе, подвергнутой повторной выборке. Вот пример применения пользовательской функции для расчета максимального значения за квартал:
import pandas as pd
# Assume 'df' is a DataFrame with a 'datetime' column and a 'value' column
def custom_resampler(array_like):
    return array_like.max()
df.resample('Q', on='datetime').apply(custom_resampler)

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