python - 从特定行向下搜索 csv

标签 python csv

这是后续: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 moduleinplace 设置为 true 时,这很容易做到。

关于python - 从特定行向下搜索 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9577997/

相关文章:

python - Spark中值为空时如何删除双引号?

Postgresql:运行 SQL 查询脚本并导出到 csv

python - 将单独的参数或整个对象传递给函数

Python正则表达式替换

python - 如何在 python 中为包含嵌套文档列表的文档创建 mongoDB 聚合查询?

python - 单词A和B的语义相似度 : Dependency on frequency of A and B in corpus?

PHP:如何去掉多列行中双引号内的逗号?

r - Google 文档导出带有逗号的电子表格值。 R 中的 read.csv() 将这些视为因素而不是数字

python - 在 `self` 语句中使用 `with` 作为上下文

用于读取大型 CSV 文件的 Python 生成器