在CSV文件中查找特定值
我有一个函数,它可以在一个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上下文管理器,这样可以更好地管理文件的打开和关闭。同时,只捕获特定情况的异常,这样可以避免不必要的错误处理。
希望这些对你有帮助。