如何使用python / mysql处理重复项?

时间:2012-10-06 18:47:30

标签: python mysql

我有一个sql查询,它从我的表中返回一个带有id的重复项列表Person:

1   hudson
43  hudson
67  hudson
34  roger
79  roger
89  kerry
403 kerry

使用Python脚本,我想自动执行此类查询,例如“hudson”案例:

UPDATE Customer SET person_id = 1 WHERE person_id = 43;

当设置重复次数(例如2)时,我认为我们可以这样做:

cursor.execute(*myquery that returns list of duplicates*)
rows=cursor.fetchmany(2)
row1=rows[1] #??
row2=rows[2] #??
cursor.execute('UPDATE Customer SET person_id = row1[0] WHERE person_id = row2[0];')

当副本数量可变时,我真的不知道怎么办。

非常感谢你的帮助

1 个答案:

答案 0 :(得分:0)

按名称分组,并从每个组中选择最小人员ID。

另外考虑使用Python Pandas并将所有数据转储到Pandas DataFrame中,然后您就可以使用drop_duplicates函数了。我发现创建我自己的SQL-to-h5和SQL-to-Pandas后端代码非常值得我让我在Pandas中完成所有Python工作,而不是直接搞乱SQL。