Nano Hash - криптовалюты, майнинг, программирование

Python: временные ряды с пандами

Я хочу использовать временные ряды с пандами. Я прочитал несколько временных рядов один за другим из файла csv, который имеет дату в столбце с именем «Дата» как (ГГГГ-ММ-ДД):

Date,Business,Education,Holiday
2005-01-01,6665,8511,86397
2005-02-01,8910,12043,92453
2005-03-01,8834,12720,78846
2005-04-01,8127,11667,52644
2005-05-01,7762,11092,33789
2005-06-01,7652,10898,34245
2005-07-01,7403,12787,42020
2005-08-01,7968,13235,36190
2005-09-01,8345,12141,36038
2005-10-01,8553,12067,41089
2005-11-01,8880,11603,59415
2005-12-01,8331,9175,70736


df = pd.read_csv(csv_file, index_col = 'Date',header=0)
Series_list = df.keys()

Временные ряды могут иметь разную частоту: день, неделя, месяц, квартал, год, и я хочу проиндексировать временной ряд в соответствии с частотой, которую я определил до создания модели Арима. Не мог бы кто-нибудь объяснить, как я могу определить частоту сериала?

stepwise_fit = auto_arima(df[Series_name]....

  • Похоже, вы хотите resample pandas.pydata.org/ pandas-docs / стабильный / сгенерированный /. Трудно сказать без примера ваших данных, хотя 02.04.2018
  • Нет, я просто хочу убедиться, что временной ряд «понимает» частоту в столбце «Дата», чтобы auto.arima мог определить правильный коэффициент сезонной разницы. 02.04.2018
  • Мне трудно понять, что именно вам нужно делать. Вы получаете сообщение об ошибке? Или результат у вас неожиданный? Я бы посмотрел на MCVE, так как это, вероятно, приведет к получению более точных ответов на вашу проблему. 02.04.2018
  • Я хочу определить частоту данных с самого начала, когда я импортирую из csv, и определяю таймсерии. Почему это: для того, чтобы auto.arima мог вычислить лучшую модель арима, ему необходимо знать частоту входных данных. В противном случае часто не будет учитываться модель Arima с сезонной разницей. По сравнению с R: если при определении временного ряда я не укажу частоту, то результат auto.arima не будет лучшей моделью. Теперь надежда ясна. 02.04.2018
  • Как вы формально определяете значение частоты для отдельной строки? Как вы планируете вычислять его на основе значений даты в предыдущей и следующей строках? 02.04.2018
  • Вы действительно хотите повторно проиндексировать временные ряды или вам просто нужен автоматический способ определения частоты временных рядов при чтении файла? 02.04.2018
  • 1. Я хочу знать, какую частоту имеет df: df = pd.read_csv (csv_file, index_col = 'Date', header = 0) 2. Вероятно, лучшее решение - переиндексировать ts с определенной частотой 02.04.2018

Ответы:


1

pandas имеет встроенную функцию pandas.infer_freq()

import pandas as pd
df = pd.DataFrame({'Date': ['2005-01-01', '2005-02-01', '2005-03-01', '2005-04-01'],
                  'Date1': ['2005-01-01', '2005-01-02', '2005-01-03', '2005-01-04'],
                  'Date2': ['2006-01-01', '2007-01-01', '2008-01-01', '2009-01-01'],
                  'Date3': ['2006-01-01', '2006-02-06', '2006-03-11', '2006-04-01']})
df['Date'] = pd.to_datetime(df['Date'])
df['Date1'] = pd.to_datetime(df['Date1'])
df['Date2'] = pd.to_datetime(df['Date2'])
df['Date3'] = pd.to_datetime(df['Date3'])

pd.infer_freq(df.Date)
#'MS'
pd.infer_freq(df.Date1)
#'D'
pd.infer_freq(df.Date2)
#'AS-JAN'

В качестве альтернативы вы также можете использовать функциональность столбцов с датой и временем.

df.Date.dt.freq
#'MS'

Конечно, если у ваших данных нет реальной частоты, вы ничего не получите.

pd.infer_freq(df.Date3)
#

Описания частот задокументированы в разделе псевдонимы смещения.

02.04.2018
Новые материалы

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

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

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

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..