2016-07-27 15 views
3

나는 팬더에 sqlalchemy을 사용하여 postgres 데이터베이스를 쿼리 한 다음 동일한 결과를 다른 데이터베이스에 삽입합니다. 하지만 내가 할 때 df.to_sql('db_table2', engine)이 오류 메시지가 나타납니다. ValueError: Table 'db_table2' already exists. 새 테이블을 만들고 싶습니다. 이미 존재하는 테이블에 팬더 데이터 프레임을 삽입하는 방법? if_exists 매개 변수의pandas 데이터 프레임을 데이터베이스의 기존 테이블에 삽입하는 방법은 무엇입니까?

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 

답변

11

메이크업 사용 : 문서화 문자열에서

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

또는

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

:

""" 
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. 
""" 
+0

그것 때마다 테이블을 삭제 나타납니다. 새로운 데이터 프레임으로 테이블을 갱신하고 싶습니다. – DevEx

+0

@DevEx,'update the table'을 정의하십시오. – MaxU

+0

즉 증분 인서트 즉, 데이터베이스 테이블을 업데이트하는 매일의 작업 – DevEx

관련 문제