Я пытаюсь преобразовать другую дату в строковом формате в формат даты и времени. У меня есть около ~ 1 000 000 строк дат в столбце «status_change_date». Проблема в том, что существует много разных форматов, и я не знаю, в каком формате они все.
Итак, я пытаюсь использовать эту функцию в примечании Jupyter:
def parsing_date(date_string):
for date_format in ("%d/%m/%Y %H:%M:%S", "%m/%d/%Y %H:%M:%S", "%m/%d/%Y %H:%M:%S%p", "%d/%m/%Y %H:%M:%S%p", "%-m/%-d/%Y %H:%M:%S", "%-d/%-m/%Y %H:%M:%S", "%-m/%-d/%Y %H:%M:%S%p", "%-d/%-m/%Y %H:%M:%S%p"):
try:
return datetime.strptime(date_string, date_format)
except ValueError:
raise
print(date_string)
raise ValueError('Something is wrong')
затем,
data['status_chage_date'].apply(parsing_date)
Я печатаю ошибку, чтобы я мог учесть одну по одному в моей функции, пока нет больше ошибки. Тем не менее, я сталкиваюсь с этим сообщением об ошибке:
ValueError: time data '17/10/2019 05:49:51' does not match format '%m/%d/%Y %H:%M:%S'
или
strptime() argument 1 must be str, not None
Я думал, что охватил формат в своей функции, и вторая ошибка странная, так как я исключил строки, которые имеют None значение.
Что я делаю не так и есть ли лучший способ сделать это?