Python получает час от отметки времени - PullRequest
1 голос
/ 18 марта 2019

Мне нужно классифицировать временные метки по часам, например, если это между 7 и 9 часами утра, это будет утро.У меня есть метки времени, которые я извлекаю из моего CSV-файла, и мне нужно получить только час, чтобы я мог классифицировать число с помощью операторов if.

Я возьму метки времени из столбца date и создамновый столбец с именем час ,

df['hour'] = df.date.dt.hour

, но при этом возникает следующая ошибка: AttributeError: может использоваться только метод доступа .dt со значениями типа datetime

Отметки времени похожи на следующие: 2016-03-14 17: 24: 55

Ответы [ 3 ]

0 голосов
/ 19 марта 2019

Вам необходимо создать объект datetime со строкой метки времени, извлеченной из ваших входных данных CSV:

In [1]: import datetime

In [2]: s = '2016-03-14 17:24:55'

In [3]: d = datetime.datetime.fromisoformat(s)

In [4]: d.hour
Out[4]: 17
0 голосов
/ 19 марта 2019

Сначала вам нужно преобразовать столбец date в объект datatime:

df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d %H:%M:%S')
df['hour'] = df['date'].dt.hour
0 голосов
/ 19 марта 2019

Я не уверен, что это за объект df, но вы можете преобразовать отметки времени в datetime объекты, а затем использовать атрибуты объектов даты и времени для доступа к атрибутам отметки времени:

from datetime import datetime

d = datetime.strptime('2016-03-14 17:24:55', '%Y-%m-%d %H:%M:%S')
df['hour'] = d.hour

Вы можете прочитатьбольше о datetime module по этой ссылке

...