我有一个 csv 文件。在该文件中,如果 first、5th 和 13th 属性的值相同,则这些行将被视为重复。在这种情况下,将删除重复的行。如何在python中做到这一点?
我写了一个代码,但似乎代码陷入了无限循环:
import csv
rows = csv.reader(open("items4.csv", "r"))
newrows = []
i=0
for row in rows:
if(i==0):
newrows.append(row)
i=i+1
continue
for row1 in newrows:
if(row[1]!=row1[1] and row[5]!=row1[5] and row[13]!=row1[13]):
newrows.append(row)
writer = csv.writer(open("items5.csv", "w"))
writer.writerows(newrows)
我会稍微改变你的逻辑来引入一个标志,像这样:
for row1 in newrows:
if row[1]==row1[1] and row[5]==row1[5] and row[13]==row1[13]:
break
else:
newrows.append(row)
您的初始代码的问题在于,如果该行newrows
与其中的任何行都不匹配,则您不断将其添加到其中,这实际上newrows
无限期地扩展了,因为您不断添加满足以下条件的值:row[1]!=row1[1] and row[5]!=row1[5] and row[13]!=row1[13]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句