Перевод из string в datetime

Есть формат даты "вт, окт 12 2021 10:22 AM" данная строка берется из dataframe, который загружается из excel файла. При попытке перевода из строки в тип данных datetime выдает ошибку не совпадения форматов введите сюда описание изображения

p = pd.DataFrame(calls.groupby("Дата звонка"))
for data in p[0]:
    print(data)
    data = datetime.datetime.strptime(data, "%a, %b %d %Y %I:%M %p")

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

Автор решения: Sheridan
  1. Проверьте что именно вы вычитываете из книги. Вполне может оказаться что вам прилетает unixtime, который при отображении в экселе форматируется в указанную строку.
  2. Проверьте что все строки заполнены и заполнены датой. Возможно, гдето пусто или вместо даты строка.
  3. Вероятно, что дело в локали. Попробуйте почитать там
→ Ссылка
Автор решения: MaxU

В данном случае придется воспользоваться "костылем", т.к. русская "локаль" не понимает модификаторов AM/PM.

Рабочий пример:

import locale
locale.setlocale(locale.LC_TIME, 'ru_RU.UTF-8')

df = pd.DataFrame({"d": ["вт, окт 12 2021 10:22 AM", "вт, окт 12 2021 04:22 PM"]})
df["res"] = (pd.to_datetime(pd.to_datetime(df["d"].str[:-9], 
                            format="%a, %b %d %Y").dt.strftime("%Y-%d-%m") 
             + df["d"].str[-9:]))

результат:

In [28]: df
Out[28]:
                          d                 res
0  вт, окт 12 2021 10:22 AM 2021-12-10 10:22:00
1  вт, окт 12 2021 04:22 PM 2021-12-10 16:22:00
→ Ссылка