根据要求填写CSV文件中的一行
这里有一个我想用Python更新的csv文件。
它有三列:col1 = [1,2,3,4,5,6,7,8,9,10]
col2 = [A, A, A, B, C, C, C, C, A, A]
col3 = []
在第三列的每个单元格中,我想填入一个ID号码,这个号码只有在第二列的内容发生变化时才会改变。
在我的例子中,我会得到 col3 = [1,1,1,2,3,3,3,3,4,4]
有没有人能教我该怎么做?
1 个回答
2
在Python 3中:
from itertools import groupby
from operator import itemgetter
import csv
with open('f1.csv', newline='') as f_in, open('f2.csv', 'w', newline='') as f_out:
reader = csv.reader(f_in)
writer = csv.writer(f_out)
for i, (key, group) in enumerate(groupby(reader, key=itemgetter(1)), start=1):
for row in group:
writer.writerow(row + [i])
如果你使用的是Python 2.7,记得把with语句改成:
with open('f1.csv', 'rb') as f_in, open('f2.csv', 'wb') as f_out: