Je hebt inderdaad gelijk dat het datetime64-veld de problemen veroorzaakt. Sqlite heeft geen echt datetime-type, maar ze gebruiken tekst of integer-types om tijden weer te geven (zie http:// www.sqlite.org/datatype3.html en http://www.sqlite.org/lang_datefunc.html ).
Dus afhankelijk van wat je wilt doen, kun je eerst je datetime-kolom converteren naar een string:
df['field2'] = df['field2'].apply(str)
of naar een int (het aantal seconden sinds 1970-01-01 00:00:00 UTC):
df['field2'] = df['field2'].astype('int64')
en schrijf vervolgens uw gegevens naar sqlite.
Kanttekeningen:
- Welke versie van panda's gebruik je? Omdat er in versie 0.13 (of lager) een bug zit in de
if_exists='replace'
implementatie, die is opgelost in 0.13.1 (laatste stabiele release op dit moment) - In de komende panda's 0.14 zal er een nieuwe implementatie zijn van de sql-functies op basis van sqlalchemy, en daar zal de conversie naar een string automatisch plaatsvinden (dus geen fout meer voor datetime64-gegevens).