python - 将 pandas 数据框插入 SQLite 表/使用数据框更新表

标签 python sql pandas sqlite dataframe

所以我有一个从 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 表。有什么想法吗?

最佳答案

我认为您正在使用 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

资源:

关于python - 将 pandas 数据框插入 SQLite 表/使用数据框更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53189071/

相关文章:

MYSQL 创建表语句给我 "non-unique"错误?

python - Pandas :get_dummies 与分类

python - Django 休息框架 : set database dynamically from URL parameter

python - SKlearn KFold 生成 NaN 值

sql - 表中前 1 个不同的行

mysql - 查询记录的最佳方式

python - Pandas - 重建索引,这样我就可以保持值(value)

python - 根据列列表值过滤 pandas 数据框

python - Python差异中的潜在语义分析

python - 用于指定数据库的 Django queryset "using()"方法不适用于 related_name 查询