我有一个包含以下列的文件。我想创建另一列,但值应放在第二行。首先应为空或零。我该怎么做?。
input.csv
row
100
110
100
130
.
..
output.csv
dup row
0 100
100 110
110 100
100 130
130
答案 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)