현재 최고최고 기온 데이터는 숫자 값이 아닌 문자열이기 때문에, 값을 더하거나 크기를 비교할 수 없습니다. 숫자로 다루려면 숫자 타입(type) 데이터로 변환을 해주어야 합니다. 최고 기온 데이터는 ‘20.7’, ‘21.3’처럼 소수점이 있는 실수이므로 float() 함수를 사용하여 실수(float) 데이터로 변환해 봅시다.
import csv f = open('seoul.csv') data = csv.reader(f) header = next(data) for row in data : row[-1] = float(row[-1]) # 최고 기온을 실수로 변환 print(row) f.close()
최고 기온 데이터의 위치는 리스트 맨 뒤이므로 row[-1]로 접근할 수 있습니다. 또는 앞에서 5번째에 있으므로 row[4]로 접근해도 됩니다. 수정하고 다시 실행해 볼까요?
실행 결과
['1907-10-01', '108', '13.5', '7.9', 20.7] ['1907-10-02', '108', '16.2', '7.9', 22.0] ['1907-10-03', '108', '16.2', '13.1', 21.3] ['1907-10-04', '108', '16.5', '11.2', 22.0] (생략) ['1950-08-31', '108', '25.4', '20.1', 32.5] ------------------------------------------------------------ ValueError Traceback (most recent call last) <ipython-input-14-e9fa1ccfd42f> in <module> 4 header nextdata 5 for row in data ----> 6 row1 floatrow1 7 printrow 8 fclose ValueError: could not convert string to float: