我想使用熊猫将表格数据保存到sqlite数据库中。我在数据库中定义了一组最小的列,但希望允许保存其他列的可能性。我遇到的问题是,与使用熊猫保存未定义表列的问题to_sql
with sqlite3.connect(dbname) as cnx:
df.to_sql("InboundOrders", cnx, if_exists='replace', index=False)
我可以保存更多的列,例如未定义的名为“说明”的列。当使用“添加”选项
with sqlite3.connect(dbname) as cnx:
df.to_sql("InboundOrders", cnx, if_exists='append', index=False)
我得到通常sqlite的错误:
sqlite3.OperationalError: table InboundOrders has no column named Description
我期待,对于第一数据插入到表中,这两个选择都具有相同的行为方式。我希望将新数据“附加”到数据库中,因为我希望稍后能够回收更多数据,但这个问题正在给我带来麻烦。这是一个不需要的功能,还是应该是这样?
我理解其中的逻辑。然而,我发现奇怪的是,如果表格还不存在(就像我的情况那样),这两个选项将返回不同的行为。第一次填满桌子时,是不是希望他们表现得相同? – famargar
请注意,我重新说明了这个问题,使我的用例更清晰 – famargar
@famargar,我不能再现由您的行为描述为不存在的表。如果表格不存在,这两个选项都可以正常工作 – MaxU