Вставьте фрейм данных pandas в таблицу SQLite - PullRequest
0 голосов
/ 07 ноября 2018

Итак, у меня есть данные, импортированные из Excel, и таблица SQL с соответствующими столбцами. До сих пор я обновлял таблицу, используя столбцы в виде списков:

Schedule_Frame = DataFrame(Sheet_Schedule)

Column_ID=Schedule_Frame['ID']

Column_list=list(Column_ID)


for i in range(len(Column_list)):

miCursor.execute("UPDATE SCHEDULE SET ID=? WHERE rowid=?",(Column_list[i],i))

Тем не менее, поскольку в SQLite у меня есть таблица, которая соответствует столбцам моего фрейма данных, я уверен, что есть способ обновить всю таблицу SQLite, используя мой фрейм.

Есть идеи как это сделать?

Большое спасибо !!

1 Ответ

0 голосов
/ 07 ноября 2018

Я думаю, что вы используете sqlite3 пакет для доступа к вашей базе данных SQLite. Как насчет использования SQLAlchemy - который хорошо работает со структурами данных Pandas - для доступа к базе данных?

from sqlalchemy import create_engine
engine = create_engine('sqlite://<replace_this_with_path_to_db_file>', echo=False)

Затем делаем:

Schedule_Frame.to_sql('SCHEDULE', con=engine, if_exists='append')

Редактировать : Пример кода

from sqlalchemy import create_engine
import pandas as pd

engine = sqlalchemy.create_engine('sqlite:///my.db', echo=False)
df = pd.DataFrame([[1,2],[1,2]], columns=['a', 'b'])

df.to_sql('mytable', con=engine, if_exists='append')

В sqlite3 CLI:

sqlite> select * from 'mytable';
0|1|2
1|1|2

Ресурсы:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...