【发布时间】:2021-07-23 12:32:14
【问题描述】:
我有一个包含数据的 SQL 表 (table_1),我有一个读取 csf 并创建数据帧的 Python 脚本。
我想将数据帧与 SQL 表数据进行比较,然后将数据帧中缺失的数据插入到 SQL 表中。
我四处阅读了这篇comparing pandas dataframe with sqlite table via sqlquery 和Compare pandas dataframe columns to sql table dataframe columns 的帖子,但没能做到。
表格和数据框具有完全相同的列。
数据框是:
import pandas as pd
df = pd.DataFrame({'userid':[1,2,3],
'user': ['Bob', 'Jane', 'Alice'],
'income': [40000, 50000, 42000]})
和 SQL 表(使用 SQLAlchemy):
userid user income
1 Bob 40000
2 Jane 42000
我想将 df 与 SQL 表进行比较,并插入用户 ID 3 Alice,以及她的所有详细信息,这是它们之间唯一缺少的值。
【问题讨论】:
-
添加一些重现您的实际问题的示例数据。查看更多详情here
-
谢谢!所以数据框是 import pandas as pd df = pd.DataFrame({'userid':[1,2,3], 'user': ['Bob', 'Jane', 'Alice'], 'income': [ 40000, 50000, 42000]})和 sql 表(使用 sqlalchemy)用户 ID 用户收入 1 Bob 40000 2 Jane 42000 我想做的是将 df 与 sql 表进行比较并插入用户 ID 3 Alice 及其所有详细信息s 他们之间唯一缺少的值
-
如果SQL表中存在记录,是更新SQL记录,还是只插入新记录?
-
@JasonCook ,感谢您的回复!对于这种特殊情况,只需插入新的。
-
你能分享更多关于你是如何连接的吗? pyodbc 可能吗?我在想一个好的方法可能是将值插入到 SQL 临时表中,然后发出另一个 SQL 语句来进行比较和插入。
标签: python sql sql-server pandas dataframe