您可以将数据库中已有的结果拉入新的数据帧,然后比较这两个数据帧。之后,您将只插入不在表中的行。不知道您的表或数据的格式,我只是使用一个通用的
SELECT
在这里陈述。
from sqlalchemy import create_engine
from sqlalchemy import exc
engine = create_engine('mysql://usr:psw@ip/schema')
con = engine.connect()
sql = "SELECT * FROM table_name"
old_results = pd.from_sql(sql, con)
df = pd.merge(old_results, results_final, how='outer', indicator=True)
new_results = df[df['_merge']=='right_only'][results_final.columns]
new_results.to_sql(name='error',con=con,if_exists='append')
con.close()
你也需要改变
if_exists
到
append
因为设置为
replace
它将删除表中的所有值,并将其替换为熊猫数据框中的值。