имея 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, данные, однако, подобный подход явно не работает.
Спасибо!