De hecho, tiene razón en que el campo datetime64 está causando los problemas. Sqlite no tiene un tipo de fecha y hora real, pero usa tipos de texto o enteros para representar tiempos (ver http:// www.sqlite.org/datatype3.html y http://www.sqlite.org/lang_datefunc.html ).
Entonces, dependiendo de lo que quiera hacer, primero puede convertir su columna de fecha y hora en una cadena:
df['field2'] = df['field2'].apply(str)
o a un int (la cantidad de segundos desde 1970-01-01 00:00:00 UTC):
df['field2'] = df['field2'].astype('int64')
y luego escriba sus datos en sqlite.
Notas al margen:
- ¿Qué versión de pandas estás usando? Porque en la versión 0.13 (o anterior) hay un error en el
if_exists='replace'
implementación, que se corrigió en 0.13.1 (última versión estable en este momento) - En los próximos pandas 0.14, habrá una nueva implementación de las funciones sql basadas en sqlalchemy, y allí la conversión a una cadena ocurrirá automáticamente (por lo que ya no habrá errores para los datos datetime64).