●CSV예제 파일은 아래글에서 다운받아 주세요
**입력하는 코드가 있는 파일과 같은 폴더에 위치해 있어야 합니다**
● 제주도에서 가장 비가 많이 오는 월 구하는 예제 입니다.
지역이랑 상관없이 1~12월의 각 월별 강수량 합계를 구한 다음 최대 강수량을 가진 월을 구하면 됩니다.
● max() 함수 : 리스트, 튜플 등에 사용되어 최댓값을 가진 요소를 구하는 데 사용.
● 월별 강수량의 합계를 나타내는 리스트 sum_rain을 0으로 초기화
● 강수량 데이터가 누락된 경우, 즉 데이터 값이 없는 경우에는 해당 요소 line[5]에 0을 저장
관측된 데이터의 값이 없는 경우가 발생하는 경우가 종종 있습니다. 이렇게 초기화하지 않으면 float(line[5])은 float('')이 되어 NULL 문 자를 실수형으로 변환할 수 없다는 오류가 발생하게 됩니다.
●sum_rain.index() 메소드 : 리스트의 해당 요소 값을 가진 인덱스를 구하는 데 사용.
리스트의 인덱스는 0부터 시작하기 때문에 해당 인덱스에 1을 더한 값이 바로 최대 강수량을 가진 월이 된다.
import csv
f = open('jeju_2019.csv', 'r', encoding='utf-8')
lines = csv.reader(f)
header = next(lines)
# 월별강수량의 합을 저장하는 리스트
sum_rain = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
for line in lines:
# 만약 강수량값이 없으면 0을 넣는 과정
if not line[5] :
line[5] = 0
if int(line[2][5:7]) == 1 : # 1월 이면
sum_rain[0] += float(line[5]) #sum_rain리스트의 0번째가 1월
if int(line[2][5:7]) == 2 : # 2월 이면
sum_rain[1] += float(line[5])
if int(line[2][5:7]) == 3 : # 3월 이면
sum_rain[2] += float(line[5])
if int(line[2][5:7]) == 4 : # 4월 이면
sum_rain[3] += float(line[5])
if int(line[2][5:7]) == 5 : # 5월 이면
sum_rain[4] += float(line[5])
if int(line[2][5:7]) == 6 : # 6월 이면
sum_rain[5] += float(line[5])
if int(line[2][5:7]) == 7 : # 7월 이면
sum_rain[6] += float(line[5])
if int(line[2][5:7]) == 8 : # 8월 이면
sum_rain[7] += float(line[5])
if int(line[2][5:7]) == 9 : # 9월 이면
sum_rain[8] += float(line[5])
if int(line[2][5:7]) == 10 : # 10월 이면
sum_rain[9] += float(line[5])
if int(line[2][5:7]) == 11 : # 11월 이면
sum_rain[10] += float(line[5])
if int(line[2][5:7]) == 12 : # 12월 이면
sum_rain[11] += float(line[5])
# max()함수를 이용해서 최대 강수를 가진 값을 찾아 max_month_rain에 넣기
max_month_rain = max(sum_rain)
# index()함수를 이용해서 최대 강수를 가진 월을 찾아 max_month에 넣기
max_month = sum_rain.index(max_month_rain) + 1
print('(1) 최대 강수 월과 강수량 : %d월, %.1f mm\n' % (max_month, max_month_rain))
print('(2) 월별 강수량')
for i in range(1, 13) :
print('%d월 : %.1f mm' % (i, sum_rain[i-1]))
f.close()
출처: 예제 중심 파이썬 입문
궁금한 부분이 있으면 댓글 부탁드립니다^^
'• programming language > python' 카테고리의 다른 글
[파이썬 예제] 데이터 분석 14- 연 강수량이 최대인 지역 찾기 (0) | 2022.07.21 |
---|---|
[파이썬 예제] 데이터 분석 13- 고산 지역의 7월 최저/최고 습도 구하기 (0) | 2022.07.21 |
[파이썬 예제] 데이터 분석 11- 8월 최고기온이 가장 높은 지역 찾기 (0) | 2022.07.21 |
[파이썬 예제] 데이터 분석 10- 서귀포시 1월 최저기온 평균 구하기, csv 파일열기, 날짜 슬라이싱, 헤더 넘기기 (0) | 2022.07.21 |
[파이썬 예제] 데이터분석 9- csv 파일로 서귀포시 1월 최저 기온 평균 구하기 (0) | 2022.07.20 |