Перевод из 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
→ Ссылка
- Проверьте что именно вы вычитываете из книги. Вполне может оказаться что вам прилетает unixtime, который при отображении в экселе форматируется в указанную строку.
- Проверьте что все строки заполнены и заполнены датой. Возможно, гдето пусто или вместо даты строка.
- Вероятно, что дело в локали. Попробуйте почитать там
Автор решения: 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