【发布时间】:2020-04-13 17:02:54
【问题描述】:
我是 SQL 的绝对新手,刚刚开始使用它。我有一个包含股票价格及其日期的 SQLite 数据库。
然后,我使用 API 读取最新的股票价格,并希望更新我的数据库并仅添加具有新日期的新价格。但我想将旧的保留在数据库中。我从 API 中获取它们作为 pandas 数据框。我的 API 返回重复项,我不想在我的数据库中有重复项。
我使用 Python 3.6 和 sqlite3 作为引擎。
这是数据中的一组数据示例:
1. open 2. high 3. low 4. close 5. volume
date
2020-04-09 16:00:00 571.925 573.01 571.73 573.01 117287.0
2020-04-09 15:59:00 572.000 572.00 571.45 572.00 56954.0
2020-04-09 15:58:00 571.450 572.00 571.28 571.90 63987.0
2020-04-09 15:57:00 571.560 572.00 571.26 571.42 50978.0
2020-04-09 15:56:00 570.990 571.61 570.58 571.49 30975.0
我厌倦了https://www.ryanbaumann.com/blog/2016/4/30/python-pandas-tosql-only-insert-new-rows 提出的解决方案。但我得到一个错误:
KeyError: Index(['date'], dtype='object')
使用的代码是:
df_new=clean_df_db_dups(data, tablename, conn, ['date'])
print('New:',df_new.head())
任何帮助都会很好。这只是我的第二篇 Stackoverflow 帖子,所以如果我在做某事不对,请告诉我;)。
【问题讨论】:
标签: python sql pandas sqlite dataframe