1,boss,30
2,go,35
2,nan,45
3,fog,33
4,kd,55
4,gh,56
1,boss,30
3,fog,33
表示我的输出文件应该没有重复项。我应该删除基于第1列重复的记录。
source_rd = csv.writer(open("Non_duplicate_source.csv", "wb"),delimiter=d)
gok = set()
for rowdups in sort_src:
if rowdups[0] not in gok:
source_rd.writerow(rowdups)
gok.add( rowdups[0])
1,boss,30
2,go,35
3,fog,33
4,kd,55
我做错了什么?
答案 0 :(得分:0)
您可以将文件循环两次。
第一次通过,计算所有重复项。第二次通过获取感兴趣的那些。
import csv
gok={}
with open(fn) as fin:
reader=csv.reader(fin)
for e in reader:
gok[e[0]]=gok.setdefault(e[0], 0)+1
with open(fn) as fin:
reader=csv.reader(fin)
for e in reader:
if gok[e[0]]==1:
print e
打印:
['1', 'boss', '30']
['3', 'fog', '33']
您的方法不起作用的原因是,一旦看到副本的第二个实例,第一个实例已经被写入。