import csv
reader=csv.reader(open('Names_Duplicates.csv', 'r'),delimiter=',')
writer=csv.writer(open('Names_NoDuplicates.csv', 'w'),delimiter=',')
Names=set()
for row in reader:
if row[0] not in Names:
writer.writerow(row)
Names.add(row[0])
我使用此代码使用Python 2.7(Windows)从CSV文件中删除重复项。我能够一次删除基于一列的重复项。无论如何我可以同时删除多个coloumn的副本吗?
感谢任何帮助。
P.S - Pandas库在我的系统中无效。
答案 0 :(得分:2)
使用多个项目的元组作为密钥。
import operator
...
fieldmatches = set()
fieldspec = operator.itemgetter(0, 2, 3) # for example
for row in reader:
if fieldspec(row) not in fieldmatches:
writer.writerow(row)
fieldmatches.add(fieldspec(row))