Du har verkligen rätt i att datetime64-fältet orsakar problemen. Sqlite har ingen riktig datetime-typ, men de använder text eller heltalstyper för att representera tider (se http:// www.sqlite.org/datatype3.html och http://www.sqlite.org/lang_datefunc.html ).
Så beroende på vad du vill göra kan du först konvertera din datetime-kolumn till en sträng:
df['field2'] = df['field2'].apply(str)
eller till en int (antal sekunder sedan 1970-01-01 00:00:00 UTC):
df['field2'] = df['field2'].astype('int64')
och skriv sedan dina data till sqlite.
Sidenotes:
- Vilken version av pandor använder du? Eftersom det i version 0.13 (eller senare) finns en bugg i
if_exists='replace'
implementering, som är fixad i 0.13.1 (senaste stabila versionen för tillfället) - I den kommande pandas 0.14 kommer det att finnas en ny implementering av sql-funktionerna baserad på sqlalchemy, och där kommer konverteringen till en sträng att ske automatiskt (så inte fel längre för datetime64-data).