具有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数据时,类似的方法显然行不通。
谢谢!