我正在尝试获取某一列中CSV文件上列出的最大值。我还不能使用熊猫,所以一切都必须是基本的。
CSV样本数据为:
赠款313 2014 赠款976 2013 赠款245 2012 赠款90 2011 赠款962 2010
输出必须是:grant made 976 in 2013
->这是name
赠款和年份的最大值。
我的代码是:
import csv
Empmax = input("Enter employee name: ")
maxMade = 0
with open("data.csv") as file:
reader = csv.reader(file)
for line in reader:
name = line[0]
year = line[1]
made = line[2]
if Empmax.lower() == name.lower():
if int(made) > maxMade:
maxMade = int(made)
print(Empmax, "made", maxMade, "in", int(year))
输出出来是这样的:grant made 962 in 2010
。
更新了它,我得到了最大值:我使用了:如果int(made)> maxMade:来自benny的示例。虽然年份仍未更新。
假设您确实要读取CSV文件,则需要将数据更改为以逗号分隔,如下所示:
grant,313,2014
grant,976,2013
grant,245,2012
grant,90,2011
grant,962,2010
然后,这是您的代码版本,可为您提供所需的结果:
import csv
empName = input("Enter employee name: ")
maxMade = 0
maxYear = 0
with open("/tmp/data.csv") as file:
reader = csv.reader(file)
for line in reader:
name = line[0]
made = int(line[1])
year = line[2]
if empName.lower() == name.lower() and made > maxMade:
maxMade = made
maxYear = year
print(empName, "made", maxMade, "in", maxYear)
结果:
grant made 976 in 2013
如果数据中已经有空格,并且您不想更改它,那么您应该使用常规的文件读取器,然后split()
在文件的每一行上调用以获取各个字段。@BennyMue的答案显示了如何执行此操作。
如果您不使用CSV文件和CSV阅读器对象,则建议您将数据文件的扩展名和代码中的名称更改为不使用“ csv”,因为这样做会误导您实际上没有读取CSV数据。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句