Python pandas.to_sql基于“唯一id”将旧数据替换为新数据
我有一个pandas数据框架,我用下面的代码将其放入sql中 代码 样本数据 我的意图是每周运行一次代码,如果唯一id匹配,则用该周的数据替换.dbfile中的数据。如果不匹配,它将附加到.db文件Python pandas.to_sql基于“唯一id”将旧数据替换为新数据,python,pandas,sqlalchemy,dataframe,Python,Pandas,Sqlalchemy,Dataframe,我有一个pandas数据框架,我用下面的代码将其放入sql中 代码 样本数据 我的意图是每周运行一次代码,如果唯一id匹配,则用该周的数据替换.dbfile中的数据。如果不匹配,它将附加到.db文件 我该怎么做?还是有更好的方法来执行此任务?似乎没有一个功能可以轻松完成此任务。目前,我只需删除整个表,然后重新创建一个新表 meta = MetaData() table_to_drop = Table('Database count details',
我该怎么做?还是有更好的方法来执行此任务?似乎没有一个功能可以轻松完成此任务。目前,我只需删除整个表,然后重新创建一个新表
meta = MetaData()
table_to_drop = Table('Database count details',
meta, autoload=True, autoload_with=engine)
table_to_drop.drop(engine)
pandas.DataFrame.to_sqldf,name='Database count details',con=engine(如果存在)='replace'
请参见to_sql的if_exists参数,在运行to_sql之前,只需删除冲突行。下面是我如何更新实验结果的 从sqlalchemy导入选择、删除、表格、元数据 元数据=元数据引擎 实验名称='base-20180608' 管道建议=表“管道建议”,元数据,自动加载=真 pipeline\u proposities.delete.wherepipeline\u proposities.c.experience\u name==实验\u name.execute 提议[实验名称]=实验名称 propositions.to_sqlpipeline_propositions,con=engine,如果存在class='append'
这里有一个可能的解决办法。sqlalchemy或pandas中没有任何功能可以轻松做到这一点?注意:如果_存在,则表示表,而不是单行。如果该表存在,它将重新创建整个表。可能应该在单个会话中执行这两个步骤
UNIQUE id name refreshed_at values
2449205 ABC 2014-01-10 22
26019260 DEF 2016-03-04 51
26019261 GHI (1333) 2016-03-04 0.55
meta = MetaData()
table_to_drop = Table('Database count details',
meta, autoload=True, autoload_with=engine)
table_to_drop.drop(engine)