我有一个简单的csv文件:
101,8
102,10
102,6
103,5
104,0
第二行和第三行的第[0]行有重复的条目,我希望保持最后一个(或更低的行[1]值)重复。我弄清楚如何使其正常工作的唯一方法是使用dict()进行排序,但现在我在使用正确格式写入csv文件时遇到问题。我的代码:
from operator import itemgetter
from pprint import pprint
import csv
with open('cards1.csv', 'rb') as csvfile:
reader = csv.reader(csvfile, delimiter=',')
with open('cards2.csv', 'wb') as csvfile1:
writer = csv.writer(csvfile1, delimiter=',')
rows = iter(reader)
sort_key = itemgetter(0)
sorted_rows = sorted(rows, key=sort_key)
unique_rows = dict((row[0], row) for row in sorted_rows)
pprint (unique_rows)
writer.writerows(unique_rows)
打印:
{'101': ['101', '8'],
'102': ['102', '6'],
'103': ['103', '5'],
'104': ['104', '0']}
但写入我的文件:
1,0,2
1,0,3
1,0,1
1,0,4
我希望它只是删除行[0]中具有行[1]中最大值的副本。谢谢(顺便说一下,创建的csv的顺序并不重要)
答案 0 :(得分:0)
如果我理解正确的话。
而不是:
writer.writerows(unique_rows)
你想做点什么:
for row in unqiue_rows.values():
writer.writerow(row)