Как использовать данные 24-часового временного ряда в качестве прогнозирующей функции - PullRequest
0 голосов
/ 08 апреля 2019

Мне просто интересно, как лучше всего использовать этот 24-часовой формат времени в качестве прогнозирующей функции. Мои мысли состояли в том, чтобы разбить его на 24 категории для каждого часа дня. Есть ли простой способ преобразовать этот объект в объект datetime Python, который бы упростил биннинг, или как бы вы посоветовали работать с этой функцией? Спасибо :)

df['Duration']

0         2:50
1         7:25
2        19:00
3         5:25
4         4:45
5         2:25

df['Duration'].dtype

dtype('O')

Ответы [ 3 ]

0 голосов
/ 08 апреля 2019

Вы должны рассчитать время в секундах, минутах или часах от некоторого начального времени, например, 1-го времени. Затем вы можете составить график рассеяния x-y данных, поскольку ось x (время) теперь является числами.

0 голосов
/ 08 апреля 2019

Лучшее решение будет зависеть от того, что вы надеетесь получить от своей модели.Во многих случаях имеет смысл преобразовать его в общее количество секунд (или минут или часов) с некоторой эпохи.Чтобы преобразовать ваши данные в секунды с 00:00, вы можете использовать:

from datetime import datetime

t_str = "2:50"

t_delta = datetime.strptime(t_str, "%H:%M") - datetime(1900, 1, 1)
seconds = t_delta.total_seconds()
hours = seconds/60**2

print(seconds)
# 10200.0

Использование класса datetime в Python не будет поддерживать значения времени свыше 23:59.Поскольку кажется, что ваши данные могут быть продолжительностью, вы можете представить их как экземпляр класса timedelta в Python.

from datetime import timedelta  

h, m = map(int, t_str.split(sep=':'))
t_delta = timedelta(hours=h, minutes=m)

# Get total number of seconds
seconds = t_delta.total_seconds()
0 голосов
/ 08 апреля 2019

Вы можете использовать datetime для создания используемой строки datetime

>>> from datetime import datetime
>>> x = datetime(2019, 1, 1, 0).strftime('%Y-%m-%d %H:%M:%S')
>>> # Use that for your timestring then you can reverse it nicely back into a datetime object
>>> d = datetime.strptime('2019-01-01 00:00:00', '%Y-%m-%d %H:%M:%S')

Конечно, вы можете использовать любую допустимую строку формата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...