2016-02-11 242 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