我正在尝试更改数据库中的表。但是我发现使用 Pandas 提供的 to_sql 方法很困难。我的price_data
数据框看起来像这样:
初始数据框(作为数据库中的行):
用于更改数据的代码:
with con:
price_data.to_sql(con=con, name='clean_prices2', if_exists='append', index=False, flavor='mysql')
这里的最终目标是修改初始数据帧(将零值转换为 Nan,然后对其进行插值),并将其保存回数据库中。结果应该是这样的(除了相同的id
):
期望的输出:
如果您专门查看该close_price
列,您可以看到 0 值被分配了 90.7350
我当前的解决方案是附加数据行,这会导致重复输入,如下所示:
实际输出:
最后,我将不得不执行另一个查询来删除重复的行(基于 price_date)
我知道我可以更改要替换if_exists
的参数,但这会删除我的数据库表的其余部分。基本上我想在不同的 's上多次执行这个查询symbol_id
无论如何修改一个子集(在这种情况下,只有 3 行)而不删除我表中的其余数据?该解决方案可以修改现有行(保持不变id
)或删除旧行,并创建不带零的新行。我只是想在没有额外删除重复查询的情况下完成此操作。