这是后续:this question
我使用的代码是:
import csv
file1reader = csv.reader(open("file1.csv"), delimiter=",")
file2reader = csv.reader(open("file2.csv"), delimiter=",")
header1 = file1reader.next() #header
header2 = file2reader.next() #header
for Code, DTime in file1reader:
for id_, D, Sym, DateTime, Bid, Ask in file2reader:
if DateTime.startswith(DTime): # found it
print id_, Code, DateTime, Bid, Ask # output data
break # break and continue where we left next time
结果示例:
1375023013 1 2010-12-26 17:01:01 1.311200 1.311500
1375023592 2 2010-12-26 17:07:16 1.311700 1.312000
1375024176 2 2010-12-26 17:15:04 1.311300 1.311600
对于这些结果的每一行,我想在 file2.csv 中搜索 id_ 值,并从该行开始,在 Bid 列中搜索 >= Bid+0.0010 OR <= Bid-0.0015 的值。基本上,从该条目开始,什么价格是第一位的?出价+0.0010 还是出价-0.0015?我需要使用 >= & <= 因为价格不连续。找到该条目后,我想通过添加找到的日期时间和出价列来附加原始结果。
预期结果:
id_ Code DateTime Bid Ask NextDateTime NextBid
1375023013 1 2010-12-26 17:01:01 1.311200 1.311500 2010-12-26 17:03:02 1.312200
1375023592 2 2010-12-26 17:07:16 1.311700 1.312000 2010-12-26 17:09:03 1.311100
1375024176 2 2010-12-26 17:15:04 1.311300 1.311600 2010-12-26 17:20:02 1.312400
再次感谢
最佳答案
要“从特定行向下搜索 csv”,请尝试使用 itertools.dropwhile 。
要“通过添加列来追加原始结果”,您需要使用新数据重写文件。 fileinput module当 inplace 设置为 true 时,这很容易做到。
关于python - 从特定行向下搜索 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9577997/