Наистина сте прави, че полето datetime64 причинява проблемите. Sqlite няма истински тип дата и час, но те използват текстови или цели числа за представяне на времена (вижте http:// www.sqlite.org/datatype3.html и http://www.sqlite.org/lang_datefunc.html ).
Така че в зависимост от това какво искате да направите, можете първо да конвертирате вашата колона за дата и час в низ:
df['field2'] = df['field2'].apply(str)
или към int (броят секунди от 1970-01-01 00:00:00 UTC):
df['field2'] = df['field2'].astype('int64')
и след това запишете вашите данни в sqlite.
Странични бележки:
- Коя версия на pandas използвате? Тъй като във версия 0.13 (или по-ниска) има грешка в
if_exists='replace'
изпълнение, което е коригирано в 0.13.1 (най-новата стабилна версия в момента) - В предстоящата pandas 0.14 ще има ново внедряване на sql функциите, базирани на sqlalchemy, и там преобразуването в низ ще се извърши автоматично (така че вече няма грешка за данни datetime64).