从pandas df更新数据库中的现有行

dar*_*ool 23 python postgresql pandas

我有一个PostgreSQL数据库.Pandas有一个'to_sql'函数,用于将数据帧的记录写入数据库.但是我没有找到任何关于如何在完成数据帧时使用pandas更新现有数据库行的文档.

目前,我可以使用pandas read_sql_table将数据库表读入数据帧.然后我根据需要处理数据.但是,我无法弄清楚如何将该数据帧写回数据库以更新原始行.

我不想要覆盖整个表格.我只需要更新最初选择的行.

joh*_*855 5

一种方法是利用sqlalchemy“表类”和session.merge(row),session.commit():

这是一个例子:

for row in range(0, len(df)):
    row_data = table_class(column_1=df.ix[i]['column_name'],
                           column_2=df.ix[i]['column_name'],
                           ...
                           )
    session.merge(row_data)
    session.commit()
Run Code Online (Sandbox Code Playgroud)