Rzeczywiście masz rację, że pole datetime64 powoduje problemy. Sqlite nie ma prawdziwego typu datetime, ale używa typów tekstowych lub liczb całkowitych do reprezentowania czasu (patrz http:// www.sqlite.org/datatype3.html i http://www.sqlite.org/lang_datefunc.html ).
W zależności od tego, co chcesz zrobić, możesz najpierw przekonwertować kolumnę daty i godziny na ciąg:
df['field2'] = df['field2'].apply(str)
lub do int (liczba sekund od 1970-01-01 00:00:00 UTC):
df['field2'] = df['field2'].astype('int64')
a następnie zapisz swoje dane w sqlite.
Przypisy:
- Jakiej wersji pandy używasz? Ponieważ w wersji 0.13 (lub niższej) jest błąd w
if_exists='replace'
implementacja, która została naprawiona w 0.13.1 (najnowsza stabilna wersja w tej chwili) - W nadchodzących pandach 0.14 pojawi się nowa implementacja funkcji sql oparta na sqlalchemy, a tam konwersja na ciąg znaków nastąpi automatycznie (więc nie będzie już błędu dla danych datetime64).