在csv文件PYTHON的列中查找最大值

时间:2016-02-11 02:07:46

标签: python csv

我对编码很新,而且我仍然坚持当前的项目。我有一个.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 个答案:

答案 0 :(得分:5)

目前,您正在比较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

答案 1 :(得分:1)

import csv
with open('american_colleges__universities_1993.csv', 'r') as f:
    reader = csv.reader(f)
    maxnum = max(reader, key=lambda row: int(row[14]))
print(maxnum)

这应该为您完成工作。