我对编码很新,而且我仍然坚持当前的项目。我有一个.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这样的东西。我怀疑程序只是将每个数字视为自己的值......如何才能看到每个数字中的整个数字?
抱歉有新问题。谢谢!
答案 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)
这应该为您完成工作。