Python重复CSV fi

2022-05-21 07:15:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从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)

Tags: 文件csv数据infordataifstock数字rowsplitstripstocksstockdata
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