我的csv中有两列:一列显示颜色,另一列显示颜色数。
color | count
red | 2
red | 5
green | 7
blue | 9
green | 3
orange | 5
我想从第一列中删除重复项,但总结相应的颜色值。如何使用python执行此操作?我希望输出在csv中。
预期输出
color | count
red | 7
green | 10
blue | 9
orange | 5
这是我的代码:
import csv reader=csv.reader(open('cu.csv', 'r'), delimiter=',')
writer=csv.writer(open('cu-clean.csv', 'w'), delimiter=',')
lastnames = set()
for row in reader: if row[1] not in lastnames: writer.writerow(row)
lastnames.add( row[1] )`
任何人都可以帮我吗?
答案 0 :(得分:0)
import csv
with open('file.csv', 'rb') as f:
reader = csv.reader(f)
colors = {}
index = 0
for row in reader:
if index == 0:
header = row
else:
color = row[0]
count = row[1]
if color in colors:
colors[color] += int(count)
else:
colors[color] = int(count)
index += 1
with open('out.csv', 'w') as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=header, delimiter=',', lineterminator='\n')
writer.writeheader()
for k, v in colors.iteritems():
writer.writerow({header[0]: k, header[1]: v})
这是为所有颜色和它们出现的次数保存字典,然后只是将字典写入文件。 您可以将分隔符更改为您想要的任何内容(似乎您使用过" |")
(在python 2.7上测试)