2016-02-11 247 views
0

我对编码相当陌生,而且我被困在当前的项目中。我有一个.csv文件,而不是使用电子表格,我试图编写一个Python程序来查找特定列的最大值。到目前为止,我有以下几点:在csv文件的列中查找最大值PYTHON

import csv 

with open('american_colleges__universities_1993.csv', 'rU') as f: 
    reader = csv.reader(f) 
    answer = 0 
    for column in reader : 
     answer = 0 
     for i in column[14]: 
      if i>answer: 
       answer = i 
print answer 

我不断收到这样的:

9 

的问题是,这只是返回的最大整数(这恰好是9),当它应该是返回类似15,000的东西。我怀疑该计划只是将每个数字视为自己的价值......我怎样才能看到每个条目中的全部数字?

对不起,新手问题。谢谢!

回答

2

当前您正在比较column[14]中的每个字符并将词汇最大字符设置为answer。假设你想算术比较全的column[14]您需要replace逗号与'',并转换为int,如:

with open('american_colleges__universities_1993.csv', 'rU') as f: 
    reader = csv.reader(f) 
    next(reader)  # Skip header row 
    answer = max(int(column[14].replace(',', '')) for column in reader) 
print answer 

如果你需要整行具有最大column[14]你可以选择使用的key参数为max

answer = max(reader, key=lambda column: int(column[14].replace(',',''))) 
print answer 
+0

所以,列中的第一行是文本。我怎样才能跳过它来查看实际的数字?我已经尝试了下一步(f) – Jhiems

+1

您可以在'max'调用之前'下一个(阅读器)'跳过标题行。或者,您可以查看'DictReader',然后使用'column ['ColumnName']'。 – AChampion