パンダを使用して表データをsqliteデータベースに保存したいとします。私は最小限の列をデータベースに定義しましたが、追加の列を保存する可能性を許容したいと考えています。私が遭遇した問題はpandas to_sqlを使用して未定義のテーブル列を保存する際の問題
with sqlite3.connect(dbname) as cnx:
df.to_sql("InboundOrders", cnx, if_exists='replace', index=False)
と私は、たとえば、「説明」という名前の未定義の列を追加列を保存することができるということです。私はテーブルに最初のデータ挿入のために、二つのオプションが同じように振る舞うだろうと期待していた
sqlite3.OperationalError: table InboundOrders has no column named Description
:「追加」オプション
with sqlite3.connect(dbname) as cnx:
df.to_sql("InboundOrders", cnx, if_exists='append', index=False)
を使用している間、私はいつものsqliteのエラーが発生します。新しいデータをデータベースに「追加」したいのですが、後でデータを追加して戻ってくることが期待されますが、この問題が原因で問題が発生しています。これは不要な機能なのですか、それともこの方法であるはずですか?
私はロジックを理解しています。しかし、テーブルがまだ存在しない場合(私の場合のように)、2つのオプションが異なる動作を返すことは奇妙であることが分かりました。テーブルが一杯になったときに同じように行動することを望んでいないでしょうか? – famargar
私はユースケースをより明確にするために質問を言い換えたことに注意してください。 – famargar
@famargar、私は再現できません。両方のオプションは、テーブルが存在しない場合に適切に動作しています – MaxU