分别在下一列添加一个相同的列

时间:2016-04-12 16:01:57

标签: python python-2.7 csv

我正在尝试在csv文件的现有列旁边添加一个重复列。例如,数据集看起来像这样。

A,B,C,D
D,E,F,G

然后添加一个重复的列。

A,A,B,B,C,C,D,D
D,D,E,E,F,F,G,G

以下是我尝试的代码,但显然它不起作用。

import csv

with open('in.csv','r') as csvin:
    with open('out.csv', 'wb') as csvout:
        writer = csv.writer(csvout, lineterminator=',')
        reader = csv.reader(csvin, lineterminator=',')
        goal = []
        for line in reader:       
            for i in range(1,len(line)+1,2):
                line.append(line[i])
                goal.append(line)
        writer.writerows(goal)

有任何提示吗?

2 个答案:

答案 0 :(得分:1)

嗯,你可以简洁地完成以下工作

from itertools import repeat
# open the file, create a reader
for row in reader:
    row_ = [i for item in row for i in itertools.repeat(item,2)]
# now do whatever you want to do with row_

答案 1 :(得分:0)

我认为

for i in range(0,len(line)):
     goal.append(i);
     goal.append(i);

不是最好的实施,但应该有效