假设我X
在 MySQL 中有一个表如下
A B
1 2
3 4
5 6
我有一个数据框df
如下
A B
1 2
5 6
7 8
9 10
我只想附加到X
来自df
(在df
但不在 中的行)的新行X
。结果应该是:
A B
1 2
3 4
5 6
7 8
9 10
请注意,排序对我来说无关紧要。目前,我能做的是
1. Read table X and store in a dataframe called dfx
2. Concat df and dfx
3. Drop duplicate rows
4. Insert the results back to the table X with to_sql(if_exist='replace')
但是,我认为这不是一个好习惯,尤其是当表 X 非常大时。我可以为您提供更好的建议吗?谢谢
如果您的表中有一个唯一索引会阻止您插入重复记录(主键应该完成这项工作),那么使用INSERT IGNORE
而不是INSERT
就足够了:重复记录将被静默丢弃而不是产生错误。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句