我正在尝试从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)
答案 0 :(得分: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