Я пытаюсь добавить данные из фрейма данных pandas в существующую таблицу в sqlite db. После процесса, когда я пытаюсь просмотреть данные с помощью проводника, он отображается как BLOB
. Когда я пытаюсь прочитать данные из базы данных в pandas, я получаю сообщение об ошибке:
Не удалось выполнить на sql 'select * from bnffut порядок по метке времени DESC limit 80000': недостаточно значений для распаковки (ожидается 2,получил 1)
Считать фрейм данных в таблицу sqlite:
# the dtype of timestamp column is datetime64[ns]
query = 'insert or replace into bnffut (timestamp,close,bid,ask) values (?,?,?,?)'
conn.executemany(query, df.to_records(index=False))
conn.commit()
Затем я пытаюсь прочитать его в фрейм данных:
select_statement = 'select * from '+ 'bnf' +'fut order by timestamp DESC limit 80000'
m1df = pd.read_sql(select_statement, conn)
1 - Какдобавить данные в таблицу sqlite, чтобы убедиться, что это не BLOB
, а сама отметка времени?
TIA
----- EDIT -----
Я нашел решение моей конкретной проблемы.
dtype слишком длинный для столбца sqlite3, я изменил столбец отметки времени на:
df['timestamp'] = df['timestamp'].astype(str)
и теперь он показываетправильная дата и время не являются проблемой.