Użycie pd.to_datetime() na każdym elemencie zadziałało. Opcja 4, która nie działa, stosuje metodę pd.to_datetime() do całej serii. Być może sterownik Postgres rozumie datetime Pythona, ale nie datetime64 w pandach i numpy. Opcja 4 dała poprawne dane wyjściowe, ale otrzymałem ValueError (patrz tytuł) podczas wysyłania DF do Postgres
timesAsPyDt = (spy0030Df['dt']).apply(lambda d: pd.to_datetime(str(d)))