Некоторые решения работают хорошо для меня, но numpy будет обесценивать некоторые параметры. Решение, которое лучше работает для меня, - это прочитать дату как дата и время pandas и явно исключить год, месяц и день объекта pandas. Следующий код работает для наиболее распространенной ситуации.
def format_dates(dates):
dt = pd.to_datetime(dates)
try: return [datetime.date(x.year, x.month, x.day) for x in dt]
except TypeError: return datetime.date(dt.year, dt.month, dt.day)