pandas.to_sql中的索引,ValueError:索引/列中的重复名称:无法插入id,已存在

ghhkc1vu  于 2023-04-04  发布在  其他
关注(0)|答案(2)|浏览(169)

我正在用pandas阅读MySQL表,我很确定我在写的时候试图设置为索引的值是唯一的。我检查了没有索引的表,count(distinct(id))给出了与count(id)相同的行数。但是,我仍然得到一个错误

'ValueError: duplicate name in index/columns: cannot insert product_id, already exists'

如果我设置index=True, index_label="id"
我试过reset_index,但它没有帮助。
df.to_sql(name=config.DB_TABLE, con=connection, schema=config.DB_SCHEMA, if_exists='fail', index=True, index_label="id")
我哪里做错了?

dgiusagp

dgiusagp1#

我有同样的问题,并想知道.问题是,在编程的同时,我已经添加了一列到我的DataFrame.因此,列不匹配SQL列了.你应该检查你的列的匹配.

ldfqzlk8

ldfqzlk82#

我遇到了同样的问题。我通过在调用to_sql()方法之前设置DataFrame的索引来修复它:

df = df.set_index('your_index')

我相信该方法不会接受我指定的索引,因为它已经尝试使用默认的pandas索引(即0, 1, 2...)。将DataFrame的索引设置为您希望在数据库中使用的索引将避免此冲突

相关问题