问题如何将我的数据框附加到数据库,以便它检查 stock_ticker 是否存在,仅附加 stock_ticker 不存在的行?
这是我所做的过程
将 CSV 文件导入 pandas 数据框
指定列名与数据库中的列名相同
使用下面的代码将数据帧发送到数据库,但得到
sqlite3.IntegrityError: UNIQUE constraint failed: stocks.stock_ticker
conn = sqlite3.connect('stockmarket.db')
c = conn.cursor()
df.to_sql(name='stocks', con=conn, if_exists='append', index=False)
conn.commit()
我查看了其他完整性错误案例,但似乎找不到适用于附加数据帧的案例?我发现并尝试了这个,但它所做的只是不附加任何内容。
try:
conn = sqlite3.connect('stockmarket.db')
c = conn.cursor()
df.to_sql(name='stocks', con=conn, if_exists='append', index=False)
conn.commit()
except sqlite3.IntegrityError:
print("Already in database")
我不确定我是否正确理解了迭代的事情
如何在 Pandas 中迭代 DataFrame 中的行
所以我尝试了这个,但它只是打印出每个数据库中已经存在的内容。即使困难重重,仍有 4 个新股票代码。
for index, row in df.iterrows():
try:
conn = sqlite3.connect('stockmarket.db')
c = conn.cursor()
df.to_sql(name='stocks', con=conn, if_exists='append', index=False)
conn.commit()
except sqlite3.IntegrityError:
print("Already in database")
数据库看起来像这样
Helenr
相关分类