web-dev-qa-db-ja.com

データベース内の既存のテーブルにpandasデータフレームを挿入するには?

私はsqlalchemy in pandasを使用してpostgresデータベースを照会し、変換の結果を同じデータベース上の別のテーブルに挿入しています。しかし、df.to_sql('db_table2', engine)次のエラーメッセージが表示されます:ValueError: Table 'db_table2' already exists.新しいテーブルを作成したいことに気付きました。既存のテーブルにpandas dataframeを挿入するには?

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

if_exists パラメーターを使用します:

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

または

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

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