Você está certo de que o campo datetime64 está causando os problemas. O SQLite não tem um tipo de data e hora real, mas usa tipos de texto ou inteiro para representar horas (consulte http:// www.sqlite.org/datatype3.html e http://www.sqlite.org/lang_datefunc.html ).
Portanto, dependendo do que você deseja fazer, primeiro você pode converter sua coluna de data e hora em uma string:
df['field2'] = df['field2'].apply(str)
ou para um int (o número de segundos desde 1970-01-01 00:00:00 UTC):
df['field2'] = df['field2'].astype('int64')
e, em seguida, grave seus dados no sqlite.
Notas laterais:
- Qual versão dos pandas você está usando? Porque na versão 0.13 (ou abaixo) há um bug no
if_exists='replace'
implementação, que foi corrigida em 0.13.1 (última versão estável no momento) - No próximo pandas 0.14, haverá uma nova implementação das funções sql baseadas em sqlalchemy, e lá a conversão para uma string acontecerá automaticamente (portanto, não haverá mais erros para dados datetime64).