数据库更新所有数据框数据

时间:2018-11-11 18:05:43

标签: python pandas sqlalchemy

具有DataFrame df,如何最好地将其数据插入到Postgres数据库中?

我使用以下代码上传数据-这似乎超级高效(比pd.to_sql还要高效):

def to_sql(engine: sqlalchemy.engine, df: pd.DataFrame, table, if_exists='append', sep='\t', encoding='utf8'):
    # df[:0].to_sql(table, engine, if_exists=if_exists) # Not needed as the table has to exist

    output = StringIO()
    df.to_csv(output, sep=sep, header=False, encoding=encoding, index=False)
    output.seek(0)

    connection = engine.raw_connection()
    cursor = connection.cursor()
    cursor.copy_from(output, table, sep=sep, null='', columns=list(df.columns))
    connection.commit()
    cursor.close()

但是,当我想到UPSERT数据时,类似的方法显然行不通。

谢谢!

0 个答案:

没有答案