根据python中的列值显示行值

时间:2015-10-28 10:29:44

标签: python

我仍然是Python的初学者。我正在阅读从软件生成的制表符分隔文本文件,以过滤掉一组值。但生成的值都采用与IEEE浮点格式类似的格式。 (例如:1.5656565656E + 02)。

我的制表符分隔文件是这样的(实际上它是250列。大致就是这样)

with open('E:\\trialpy\\textfile.txt') as f:
    reader = csv.reader(f, delimiter="\t")
    d = list(reader)

for ind in range(len(d)):
    if d[ind][2] == "1.00000000000000E+00":
        print ind

目标是过滤那些Observ_Anle值,其observability_Analysis为1.0000000000000E + 00但是到目前为止我正在尝试将observability_Analysis的行号打印为1.0000000000000E + 00。

我试过的代码就像这样

%f

第一组代码正常工作。印刷品只是空的。它没有给出任何价值。请帮我解决一下这个。如果问题非常愚蠢,那就很抱歉。现在被困在这个地方一段时间了。有没有办法解决这个问题,或者我必须切换到Pandas

感谢。

1 个答案:

答案 0 :(得分:1)

问题似乎是csv阅读器无法正确处理这些数据,所以每一行都作为单个字符串保存到列表中(row)......

with open('data.csv', 'r') as f1:
    r = csv.reader(f1, delimiter='\t')
    next(r, None) # skip first line
    for row in r:
        thirdc = row[0].split()[2]
        if float(thirdc) > 0.0:
            print(thirdc)

    1.00000000000000E+00
    1.00000000000000E+00
    1.00000000000000E+00