在CSV文件中查找特定值

-1 投票
1 回答
754 浏览
提问于 2025-04-18 00:37

我有一个函数,它可以在一个csv文件的某一列中找到最大值。我想打印出与这个最大值在同一行的第13列的值。代码会让这个过程更清晰:

def bigQuake(inputfilename):

    file = open(inputfilename,"r")
    maxvalue = 0.0
    for line in file:
        value = line.split()
        try:
            p = float(line.split(",")[4])
            maxvalue = max(maxvalue,p)
        except:
            pass
return maxvalue

上面的代码只是找到了第4列的最大值,问题出在我把

return maxvalue

替换成

print("The largest earthquake was a " + maxvalue + "magnitude earthquake" + value[12])

value[12]是想找到与第4列最大值对应的第12列的值。需要注意的是,第12列是字符串,所以我希望输出的结果看起来像这样:

>>>bigQuake(file.csv)
>>>The largest earthquake was a 50 magnitude earthquake 10km from San Francisco.

1 个回答

0

跟踪一下第四列中最大值对应的幅度值。

另外,建议使用csv模块来解析csv文件,这个模块是Python标准库的一部分,使用起来更方便。

import csv

def bigQuake(inputfilename):
    with open(inputfilename,"r") as input_file:
        reader = csv.reader(input_file)

        maxvalue = 0.0
        magnitude = None
        for line in reader:
            try:
                p = float(line[4])
                if p > maxvalue:
                    maxvalue = p
                    magnitude = line[12]
            except ValueError:
                pass

    print("The largest earthquake was a", maxvalue, "magnitude earthquake", magnitude, ".")

还有,注意在处理文件时应该使用with上下文管理器,这样可以更好地管理文件的打开和关闭。同时,只捕获特定情况的异常,这样可以避免不必要的错误处理。

希望这些对你有帮助。

撰写回答