【发布时间】:2016-10-31 14:15:26
【问题描述】:
我有 2 个 csv 文件,我需要针对另一个文件中的所有行测试第一个文件中的每一行,并将匹配的行写入一个新的 csv 文件。这是文件结构。
csv 1(读数间隔 20 秒采样。第一行始终是标题):
日期时间 Col1 Col2
2016 年 6 月 27 日 17:28:21 21 3244
2016 年 6 月 27 日 17:28:41 21 3278
2016 年 6 月 27 日 17:29:01 21 3299
csv 2(读数间隔为 1 秒。无标题):
2016 年 6 月 27 日 17:28:21 3245
2016 年 6 月 27 日 17:28:22 3266
2016 年 6 月 27 日 17:28:23 3277
我比较来自 csv1 和 csv2 的时间戳,并在匹配时创建一个输出行,其中包含 csv1 行加上从 csv2 读取的第二列。输出 csv 文件中的示例行将是:
日期时间 Col1 Col2 Col3
2016 年 6 月 27 日 17:28:21 21 3244 3245
这是我的python代码:
with open("file1.csv",'r') as csv1:
with open("out.csv", 'w') as myoutput:
writer = csv.writer(myoutput)
row_count=0
headerSet=0
for row in csv.reader(csv1):
with open ("file2.csv",'r') as csv2:
in2 = csv.reader(csv2)
for mrow in in2:
if row_count == 0 and headerSet==0:
# Generate Header Row for the output csv file
writer.writerow(row+["Col3"])
headerSet=1
else:
# Code to fetch timestamp from csv1 and csv2
if csv1_ts == csv2_ts:
# Fetch 2nd column value from csv2
val=mrow[1]
writer.writerow(row+[val])
break
else:
continue
row_count += 1
代码似乎需要花费大量时间来生成输出 csv 文件。我可以做些什么来提高这段代码的性能并加快它的速度?
【问题讨论】: