2017-01-19 9 views
1

私はパンダのDataFrame dfとPostgreSQLのテーブルmy_tableを持っています。 my_tableを切り捨ててmy_tableのスキーマに影響を与えずに、my_tabledf(同じ順序の列を含む)を挿入したいと考えています。これはどうすればいいですか?既存のPostgreSQLテーブルにpandas DataFrameを挿入するにはどうすればよいですか?

かなり単純な試みで、my_tableを落としてからpandas.DataFrame.to_sqlを使用しましたが、これによって異なるスキーマを持つ新しいテーブルが作成されます。

私は手動でテーブルを切り捨てた後、単にパンダはその仕事を聞かせ

答えて

1

con.execute('TRUNCATE my_table RESTART IDENTITY;') 
df.to_sql('my_table', con, if_exists='append') 
+0

は、迅速な応答をありがとう! 「RESTART IDENTITY」ビットが何をしているのか教えてください。私は今PostgreSQLのドキュメントを参照しましたが、意味するものを理解できませんでした。 msgstr "切り捨てられたテーブルの列が所有するシーケンスを自動的に再起動する"#:。 –

+0

@TrainHeartnet、[PostgreSQL sequnces](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwiLyJC_rc7RAhVGhiwKHbUHDFYQFggaMAA&url=http%3Aについて読むことができます。 %2F%2Fwww.neilconway.org%2Fdocs%2Fsequences%2F&usg = AFQjCNEcB_UHiN_9ojNJPKJiplHnEDKnhQ&sig2 = ACv_GtfVhJmnHofkooljSw)。 'my_table'テーブルにシーケンスがない場合は' RESTART IDENTITY'を省略することができます – MaxU

関連する問題