Здесь недопустимое значение года 9999
, поэтому необходимо errors='coerce'
для преобразования в NaT
:
bd1 = pd.to_datetime(bad_date_s, format="%Y/%m/%d", yearfirst=True, errors='coerce').dt.date
И здесь возникает ошибка, потому что предел , год правильный, но максимальный месяц и день только 11th April
:
К сожалению, здесь ошибка должна быть более ясной.
bd2 = pd.to_datetime(bad_date_s2 , format="%Y/%m/%d", yearfirst=True, errors='coerce').dt.date
print (pd.Timestamp.max)
2262-04-11 23:47:16.8547758
Для работы с datetime выдается ошибка:
from datetime import datetime
d = datetime(year=9999, month=12, day=31)
bd1 = pd.to_datetime(bad_date_s, format="%Y/%m/%d", yearfirst=True, errors='coerce').dt.date.fillna(d)
print (bd1)
OutOfBoundsDatetime: временная метка наносекундной границы: 9999-12-31 00: 00: 00