提取 CSV 文件中的最小值



我正在尝试使用 Python 的 csv 文件中为具有最小值的行提取所有相关信息。以下是我的代码来查找相关信息。当我对它进行适当编码时,最小值为 12。但是当我输入函数并将处理最少的函数以在csv文件中查找和记录其他数据时。无法更新该值。更新行[9]的值缺少什么?

CVS 文件包含一列数字,我需要找到最小值。单独的编码可以很好地找到 12 的最小值,我把它作为测试做了。但是在我分配一个函数并使用相同的方法来找到最小值后,它不起作用。由于我需要在代码的其他部分使用最小值,因此最好将其放入函数中并使其工作。所以我想知道如何转移函数也应该找到最小值。提前谢谢你。

#put finding minimum in to a function and will use the returned minimum 
#to pull out other information    
def findMin():  
minMile = 100
if num<minMile:
    minMile=num
return minMile

def main():
    fileIn = open("epaVehicleData2008.csv", "r")
    fileIn.readline()
    for line in fileIn:
        line = line.split(",")
        num=int(line[9])
        findmin(line)
        minMile=int(line[9])
        print(minMile)

main()
#separate code for finding the minimum as a test
fileIn = open("epaVehicleData2008.csv", "r")
fileIn.readline()
minMile = 100
for line in fileIn:
    line = line.split(",")
    num = int(line[9])
    if num < minMile:
        minMile = num
print(minMile)

这可以使用Python的CSV库来完成,以帮助读取每一行并将其自动拆分为列表:

import csv
def findMin(filename):
    with open(filename, 'r', newline='') as f_input:
        csv_input = csv.reader(f_input)
        return min(csv_input, key=lambda x: int(x[9]))[9]
print('Min mile', findMin('epaVehicleData2008.csv'))

内置的min()函数可用于确定最小行。它需要一个key参数,该参数告诉它要与输入的哪一部分进行比较,在本例中为第 9 个元素。

每次调用findMin()时,minMile的值将始终100。在设计中,您需要使变量成为全局变量,而不是函数的局部变量。也许更好的方法是向函数传递文件名,让它一次性读取和计算最小值并返回该值。

lambda只是一个内联编写的函数,不需要单独的def。在这种情况下,它将x作为一行,并以整数形式返回第九个值。

相关内容

  • 没有找到相关文章

最新更新