web-dev-qa-db-fra.com

Comment insérer un pandas dataframe dans une table déjà existante dans une base de données?

J'utilise sqlalchemy in pandas pour interroger la base de données Postgres puis insérer les résultats d'une transformation dans une autre table de la même base de données. Mais lorsque je fais df.to_sql('db_table2', engine) Je reçois ce message d'erreur: ValueError: Table 'db_table2' already exists. J'ai remarqué qu'il voulait créer une nouvelle table. Comment insérer pandas dataframe dans une table déjà existante?

df = pd.read_sql_query('select * from "db_table1"',con=engine)
#do transformation then save df to db_table2
df.to_sql('db_table2', engine)

ValueError: Table 'db_table2' already exists
18
DevEx

utiliser le paramètre if_exists :

df.to_sql('db_table2', engine, if_exists='replace')

ou

df.to_sql('db_table2', engine, if_exists='append')

de docstring:

"""
if_exists : {'fail', 'replace', 'append'}, default 'fail'
    - fail: If table exists, do nothing.
    - replace: If table exists, drop it, recreate it, and insert data.
    - append: If table exists, insert data. Create if does not exist.
"""
30
MaxU