Изменение объединенной даты на datetime в Python - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть значение int, которое я проанализировал через ряд строковых дат в кадре данных, который выглядит следующим образом:

last_date_daily = int(old_df_daily.iloc[2,-1])
print(last_date_daily)

, который дает:

20190106

Я просто хочу преобразовать это целое число в формат даты и времени.

Я пробовал:

last_date_daily = pd.to_datetime(last_date_daily)

, что оставляет меня с обменом времени на дату и неправильной датой:

1970-01-01 00:00:00.020190106

Есть ли простой способ сделать это преобразование без разделения года, месяца и дня на строку - или /?

Ответы [ 4 ]

0 голосов
/ 05 февраля 2019

Вы должны привести ваше целое число к строке перед вызовом to_datetime().Должно быть:

last_date_daily = pd.to_datetime(str(last_date_daily))
0 голосов
/ 05 февраля 2019

to_datetime обрабатывает этот случай для строк:

In [11]: pd.to_datetime('20190106')
Out[11]: Timestamp('2019-01-06 00:00:00')
0 голосов
/ 05 февраля 2019

На самом деле не сложно разбить целое число на разные поля.

>>> datetime.datetime(last_date_daily//10000, (last_date_daily//100)%100, last_date_daily%100)
datetime.datetime(2019, 1, 6, 0, 0)
0 голосов
/ 05 февраля 2019

Возможно, вы захотите проверить dateparser .

import dateparser
dateparser.parse('20190106', date_formats=['%Y%m%d'])
>>> datetime.datetime(2019, 1, 6, 0 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...