如何使用python在csv中创建重复列? (重复列应从第2行开始)

时间:2014-07-16 22:17:32

标签: python csv

我有一个包含以下列的文件。我想创建另一列,但值应放在第二行。首先应为空或零。我该怎么做?。

input.csv

row 
100 
110 
100 
130 
.  
.. 

output.csv

dup  row 
0     100 
100   110 
110   100 
100   130 
130  

2 个答案:

答案 0 :(得分:0)

input = [100, 110, 100, 130]
output = [[], []]

output[0].append(0)
for i, row in enumerate(input):
    output[1].append(row)
    if i > 0:
        output[0].append(row)

f = "dup,row,"
for n in xrange(len(output[1])):
    f += "\n"+str(output[0][n])+","+str(output[1][n])+","

csv = open('output.csv','w')
csv.write(f)
csv.close()

答案 1 :(得分:0)

主要逻辑是使用zip来构造输出数据。如果输入数据是

in_data = [100, 110, 100, 130]

然后

zip(in_data, in_data[1:])

给出:

[('100', '110'), ('110', '100'), ('100', '130')]

Rest使用csv模块将其包装起来以获得您想要的内容。你走了:

import csv

in_data = []
out_data = []
with open('input') as in_file:
    for line in in_file:
        in_data.append(line.strip())

out_data.append((0, in_data[0]))
out_data.extend(zip(in_data, in_data[1:]))
out_data.append((in_data[-1], ))

with open('output', 'w') as out_file:
    csv_writer = csv.writer(out_file)
    for line in out_data:
        csv_writer.writerow(line)