我正在用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")
我哪里做错了?
2条答案
按热度按时间dgiusagp1#
我有同样的问题,并想知道.问题是,在编程的同时,我已经添加了一列到我的DataFrame.因此,列不匹配SQL列了.你应该检查你的列的匹配.
ldfqzlk82#
我遇到了同样的问题。我通过在调用
to_sql()
方法之前设置DataFrame的索引来修复它:我相信该方法不会接受我指定的索引,因为它已经尝试使用默认的pandas索引(即
0, 1, 2...
)。将DataFrame的索引设置为您希望在数据库中使用的索引将避免此冲突