Как преобразовать данные в столбце в формат datetime?

Столбец datetime содержит данные даты и времени в формате "Jun 29 2023 09:36:44.933". Мне нужно привести его к формату "29-06-2023 09:36:45", но следующий способ не работает:

date_time_str = 'Jun 29 2023 09:36:45.002'
df['timestamp'] = datetime.strptime(date_time_str, '%m:%d:%Y %H:%M:%S.%f')

На выходе получаю ошибку:

time data 'Jun 29 2023 09:36:45.002' does not match format '%m:%d:%Y %H:%M:%S.%f'

Ответы (1 шт):

Автор решения: kristal

Конечно вы будете получать ошибку т.к. вы указали неверно формат. Верным в вашем случае будет:

%b %d %Y %H:%M:%S.%f

Из неправильного дата у вас была разделена пробелами(Jun 29 2023), а не двоеточиями как вы указали тут:

%m:%d:%Y %H:%M:%S.%f
  ^  ^

Ещё из неверного вы использовали %m(указывает номер месяца: 01,02,...,12) вместо необходимого %b(указывает сокращенное название месяца, например Jun). Ну и в общем-то получаем:

from datetime import datetime

date_time_str = 'Jun 29 2023 09:36:45.002'
timestamp = datetime.strptime(date_time_str, '%b %d %Y %H:%M:%S.%f')
print(timestamp)  # > 2023-06-29 09:36:45.002000
→ Ссылка