OutOfBoundsDatetime: вне пределов наносекундной временной метки: 219-03-28 09:36:32 При преобразовании str в datetime

#python-3.x #pandas

#python-3.x #панды

Вопрос:

У меня есть два формата дат в формате csv

 2019-08-11 07:43:28.977 (date1)
  

и

 2019-08-11 06:30:00 (date2)
  

Я использовал следующую команду для преобразования первой, и она успешно преобразовалась

 contests['date1'] =  pd.to_datetime(contests['date1'], format = '%Y-%m-%d %H:%M:%S')
  

Но когда я пытаюсь выполнить ту же команду для даты 2, она выдает мне ошибку
OutOfBoundsDatetime: Out of bounds nanosecond timestamp но миллисекунд нет, и я не указал их в формате. Каким должен быть правильный format для меня анализ этого формата даты?

РЕДАКТИРОВАТЬ
date1 и date2 — это отдельные столбцы. для этой конкретной даты в столбце date2 формат не работает 219-03-28 09:36:32

Комментарии:

1. Как работает, если использовать только contests['date1'] = pd.to_datetime(contests['date1']) ?

2. Для меня все работает хорошо parse_dates=['date1'] параметр для pd.read_csv

3. Я могу конвертировать date1 . date2 в чем проблема

4. хммм, возможно ли совместное использование даты и времени, которое вызывает ошибку?

5. 2019-08-11 07:43:28.977 . пожалуйста, объявите это как строку и попробуйте преобразовать ее в datetime с помощью pandas.to_datetime функции

Ответ №1:

Вы можете просто преобразовать с помощью to_datetime(df['B']) , не указывая конкретный формат, и он распознает формат.

Если вы хотите определить формат, вы можете указать это format = '%Y-%m-%d %H:%M:%S.%f' в своем коде.