我有一个csv文件,我想在Python 2.7中操作。
我的第一列有一个ID列表,其中一些是重复的。
我已经按ID对文件进行了排序,因此重复项一起出现。
我希望我的代码能够识别row
的ID是否与上一行的ID相同,如果是,则需要将重复行的B列文本添加到文本中。 ID出现的第一行。
某些值出现的次数超过2次。这意味着我需要创建一个循环,一旦识别出一个副本就操纵它,直到操作完所有重复项。
| Col1 | Col2 | Col3
| ----- | ------ | -----
0 | a | text1 | text1
1 | b | text1 | text1 , text2, text3
2 | b | text2 |
3 | b | text3 |
4 | c | text8 | text8
我的问题是我无法选择一行来构建循环。 csv包中的行似乎是一个没有唯一标识的列表,如果它是row1,row2等。
import csv
with open('dataset.txt', 'rb') as f:
reader = csv.reader(f, delimiter="\t")
for row in reader:
# i = i+1 # so that the comparison of cola will begin from row2
cola = str(row[0:1])[2:-2]
colb = str(row[1:2])[2:-2]
colc = str(row[2:3])[2:-2]
colc = colb
print cola, " ", colb, " ", colc
# compare cola of this row to the one of the previous row
# if cola[r] == cola[r-1]: #
with open("new.txt", "ab+") as f:
writer = csv.writer(f, dialect='excel', delimiter='\t')
writer.writerow([cola, colb, colc])
我失败的地方是分别操纵每一行,以便我可以比较 例如,行[1]或第1行和第2行是相同的(b)。
任何建议都会非常有帮助。我是python的新手。
我知道每个row
都是一个列表,但我如何遍历csv文件所包含的每个列表?
如果你建议一个更好的头衔,我将不胜感激。这不仅仅是关于循环,而是关于唯一地识别每一行/列表。