Данные временных рядов в пандах

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

Что это за идея повторной выборки? Это связано с данными временных рядов, и мы изменим частоту представления этих данных. Например, изменение годового значения на месячное или еженедельное или изменение почасовых данных на дневные. Короче говоря, мы меняем уровень в иерархии.

Это можно использовать по ряду причин, таких как получение более надежных тенденций , размеров выборки и сезонности . В некоторых отчетах будет больше смысла, если мы будем использовать один уровень иерархии, а не другой.

Кроме того, повторная выборка может помочь, если у вас есть разные источники данных и вам нужно выполнить объединение данных временных рядов. Это также поможет при работе с несоответствием в иерархии .

Данные временных рядов в пандах

Чтобы разбить это дальше, у нас есть понижение частоты дискретизации и повышение частоты дискретизации.

Даунсемплинг — это уменьшение частоты отчетов . Это могут быть такие вещи, как преобразование из секунды в час, чтобы иметь меньше значений или понижение дискретизации от месяца к кварталу.

С другой стороны, повышающая выборка предназначена для увеличения частоты отчетов с уровня месяца до дня . Позже у нас будет больше примеров этого.

Данные временных рядов в пандах

Оглавление

Как передискретизировать данные временных рядов с помощью Pandas

Как мы собираемся сделать это в Pandas?

Прежде всего, мы изменим индекс на наш столбец данных временного ряда . Затем мы можем повысить дискретизацию с помощью интерполяции, которая заполнит значения, и мы можем понизить дискретизацию, чтобы свернуть путем агрегирования значений.

Данные временных рядов в пандах

Давайте перейдем к Jupyter Notebook Python и проверим это с помощью Pandas.

Для начала мы будем использовать Pandas, введя import pandas as pd , затем import seaborn as sns для его визуализации и import matplotlib.pyplot as plt для настройки визуализации Seaborn .

Следующее, что нужно сделать, это получить данные из vega_datasets import data . Это хорошее место, чтобы получить примеры источников. Также мы собираемся получить библиотеку sp = data.sp500() и sp.head() .

Данные временных рядов в пандах

Вот наши данные на данный момент. У нас есть ежедневные доходы и цена за каждый день.

Данные временных рядов в пандах

Чтобы установить индекс для столбца даты, введите sp.set_index(['date'], inplace=True) , затем снова вызовите sp.head .

Данные временных рядов в пандах

Использование повышения частоты дискретизации для получения значений

Затем, чтобы получить больше значений, воспользуемся повышающей дискретизацией. Поскольку у нас есть данные за каждый день, мы можем перейти к часам, используя простейшую функцию sp [['price']]. resample('H').ffill() , затем запустите его. H обозначает час, M — месяц, D — день и так далее. Подробнее об этом можно узнать в документации Pandas .

Как мы видим, 1 января в полночь цена составляет 1394,46, как и в последующие часы с 1:00 до 4:00. Другой пример — 2 января, когда цена закрытия составляет 1366,42.

Данные временных рядов в пандах

Есть и другие способы сделать это, даже если значение недоступно на уровне часа. Кроме того, существуют более сложные способы, чем просто прямое заполнение . Для нашего примера то, что мы сделали, является основным способом интерполяции с повышением дискретизации.

Затем давайте перейдем к даунсемплингу, введя avg_month = sp [['price]].resample ('M').mean() , затем avg_month.head() и запустив его для проверки.

Как показано, мы можем видеть последний день каждого месяца и среднюю цену. Мы можем уменьшить выборки, чтобы иметь меньше значений, или то, что мы называем уменьшением размера.

Данные временных рядов в пандах

Чтобы визуализировать это, давайте напечатаем повторно построенные размеры. Затем следует sns.lineplot . Линейный график лучше работает с более длинной осью X, а значение Y — это среднемесячная цена.

Чтобы увидеть среднюю цену за месяц, давайте запустим это.

Данные временных рядов в пандах

Опять же, есть много разных способов сделать это. Например, если мы хотим узнать самую низкую цену за квартал, все, что нам нужно сделать, это ввести квартал_низкий , а затем квартал_низкий.голова , чтобы запустить его.

Итак, теперь мы можем видеть квартальное самое низкое значение, найденное в каждом квартале. Вот как вы делаете ресемпл.

Данные временных рядов в пандах


Обработка отсутствующих данных в Python с использованием метода интерполяции
MultiIndex в Pandas для многоуровневых или иерархических
наборов данных в Pandas с помощью ProfileReport | Python в LuckyTemplates

Заключение

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

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

Всего наилучшего,

Джордж Маунт

Leave a Comment

Расчет недельных продаж с помощью DAX в LuckyTemplates

Расчет недельных продаж с помощью DAX в LuckyTemplates

В этом руководстве показано, как в конечном итоге можно рассчитать разницу между еженедельными результатами продаж с помощью DAX в LuckyTemplates.

Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Как сохранить и загрузить файл RDS в R

Как сохранить и загрузить файл RDS в R

Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

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

Введение в фильтрацию контекста в LuckyTemplates

Введение в фильтрацию контекста в LuckyTemplates

В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.

Идеи материализации кэшей данных в DAX Studio

Идеи материализации кэшей данных в DAX Studio

В этом руководстве будут обсуждаться идеи материализации кэшей данных и то, как они влияют на производительность DAX при предоставлении результатов.

Бизнес-отчетность с использованием LuckyTemplates

Бизнес-отчетность с использованием LuckyTemplates

Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.