如何使用pandas.to_sql但仅在行不存在时添加行

我对python有一定的经验,但对SQL还是很新的,并尝试使用pandas.to_sql将表数据添加到数据库中,但是当我添加时,我希望它在添加之前检查数据是否存在

这是我的2个数据框

>>> df0.to_markdown()
|    |   Col1 |   Col2 |
|---:|-------:|-------:|
|  0 |      0 |     00 |
|  1 |      1 |     11 |

>>> df1.to_markdown()
|    |   Col1 |   Col2 |
|---:|-------:|-------:|
|  0 |      0 |     00 |
|  1 |      1 |     11 |
|  2 |      2 |     22 |

所以在这里我用熊猫to_sql

>>> df0.to_sql(con=con, name='test_db', if_exists='append', index=False)
>>> df1.to_sql(con=con, name='test_db', if_exists='append', index=False)

在这里,我检查数据库文件中的数据

>>> df_out = pd.read_sql("""SELECT * FROM test_db""", con)
>>> df_out.to_markdown()
|    |   Col1 |   Col2 |
|---:|-------:|-------:|
|  0 |      0 |      0 |
|  1 |      1 |     11 |
|  2 |      0 |      0 | # Duplicate
|  3 |      1 |     11 | # Duplicate
|  4 |      2 |     22 | 

但是我希望数据库看起来像这样,所以我不想将重复的数据添加到数据库中

|    |   Col1 |   Col2 |
|---:|-------:|-------:|
|  0 |      0 |      0 |
|  1 |      1 |     11 |
|  3 |      2 |     22 | 

我可以设置任何选项还是添加一些代码行来实现这一目标?

谢谢!

编辑:有一些SQL代码只能提取唯一的数据,但我要做的是首先不要将数据添加到数据库中

评论