0

我正在尝试从 CSV 文件加载数字数据,以便分别循环遍历每个股票(文件)的计算数据,并确定计算值是否大于特定数字(在本例中为 731)。但是,我使用的方法似乎使 Python 重复列表以及在数字('500')周围添加引号,例如,使它们成为字符串。不幸的是,我认为最终的“if”语句无法处理这个问题,因此它似乎无法正常运行。我不确定发生了什么以及为什么 Python 需要做什么才能让这段代码正常运行。

    import csv
    stocks = ['JPM','PG','GOOG','KO']
    for stock in stocks:
        Data = open("%sMin.csv" % (stock), 'r')
        stockdata = []
        for row in Data:
           stockdata.extend(map(float, row.strip().split(',')))
           stockdata.append(row.strip().split(',')[0])
        if any(x > 731 for x in stockdata):
            print "%s Minimum" % (stock)
4

1 回答 1

1

目前您正在将每行的所有列添加到列表中,然后再次添加到该行的第一列的末尾?那么所有列都是重要的,还是只是第一列?

您还在比较之前从文件中加载所有数据,但似乎没有在任何地方使用它,所以我想您可以更早地使用快捷方式......

如果我理解正确,您的代码应该是这样的(或修改为仅比较第一列)。

你基本上是在写这个吗?

import csv

STOCKS = ['JPM', 'PG', 'GOOG', 'KO']

for stock in STOCKS:
    with open('{}Min.csv'.format(stock)) as csvin:
        for row in csv.reader(csvin):
            if any(col > 731 for col in map(float, row)):
                print '{} minimum'.format(stock)
                break
于 2012-07-16T06:55:09.510 回答