Преобразование не дополненной строки в Date (в заданном формате) в Python - PullRequest
0 голосов
/ 03 сентября 2018

Я пытаюсь преобразовать не дополненную строку в дату в python и получаю следующую ошибку:

e_dataframe['Modified_Date'] =  pd.to_datetime(e_dataframe['Modified_Date'], format='%d/%m/%y %I:%M %p')

ValueError: time data '1/08/2018 4:41 PM' does not match format '%d/%m/%y %I:%M %p' (match)

Формат аналогичен, но при этом появляется ошибка.

1 Ответ

0 голосов
/ 03 сентября 2018

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

'%d/%m/%Y %I:%M %p'

В случае сомнений используйте datetime.strptime() с подстрокой вашего ввода, чтобы вы могли увидеть, какие части работают, а какие нет:

>>> import datetime
>>> datetime.datetime.strptime('1', '%d')
datetime.datetime(1900, 1, 1, 0, 0)
>>> datetime.datetime.strptime('1/08', '%d/%m')
datetime.datetime(1900, 8, 1, 0, 0)
>>> datetime.datetime.strptime('1/08/2018', '%d/%m/%y')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/mj/Development/Library/buildout.python/parts/opt/lib/python3.7/_strptime.py", line 577, in _strptime_datetime
    tt, fraction, gmtoff_fraction = _strptime(data_string, format)
  File "/Users/mj/Development/Library/buildout.python/parts/opt/lib/python3.7/_strptime.py", line 362, in _strptime
    data_string[found.end():])
ValueError: unconverted data remains: 18

Ошибка указывает на то, что %y обработал только часть года 20, сообщая нам, что он не был правильным заполнителем для ввода 2018.

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