datetime64フィールドが問題を引き起こしていることは確かに正しいです。 Sqliteには実際の日時タイプはありませんが、テキストまたは整数タイプを使用して時間を表します( http://を参照) www.sqlite.org/datatype3.html
および
したがって、実行する内容に応じて、最初に日時列を文字列に変換できます。
df['field2'] = df['field2'].apply(str)
またはint(1970-01-01 00:00:00 UTCからの秒数):
df['field2'] = df['field2'].astype('int64')
次に、データをsqliteに書き込みます。
補足:
- どのバージョンのパンダを使用していますか?バージョン0.13(またはそれ以前)では、
if_exists='replace'
にバグがあるためです。 0.13.1(現時点で最新の安定版リリース)で修正された実装 - 今後のパンダ0.14では、sqlalchemyに基づくsql関数の新しい実装があり、文字列への変換が自動的に行われます(したがって、datetime64データのエラーは発生しなくなりました)。