Вы используете %m
, который хочет месяц в качестве числа с нулем, например 02
.используйте %b
.
Из вашего вопроса видно, что вы имеете дело с единственной строкой, а не с серией Панд или другой последовательностью.Для этого вы можете использовать strptime()
из модуля Python datetime
в стандартной библиотеке:
>>> datetime.datetime.strptime('2-FEB-19', '%d-%b-%y')
datetime.datetime(2019, 2, 2, 0, 0)
Если вы действительно хотите использовать Pandas, будь то скаляр (строка) или последовательность,Вы можете использовать спецификатор формата %b
:
>>> pd.to_datetime('2-FEB-19', format='%d-%b-%y')
Timestamp('2019-02-02 00:00:00')
Ссылка Python на директивы strptime
находится в datetime
документах.
Конечно, Pandas (и используемые им библиотеки синтаксического анализа дат) довольно хороши в умозаключениях и, как правило, угадают:
>>> pd.to_datetime('2-FEB-19')
Timestamp('2019-02-02 00:00:00')