import csv
f = open('weather0106.csv', encoding='cp949')
data = csv.reader(f, delimiter=',')
header = next(data) # 첫줄 날짜,지점,최고... 띄워넘으려면 넣어야됨
import matplotlib.pyplot as plt
birth_list = [] #생일 리스트
max_temp = 0 #최고기온 값
min_temp = 0 #최저기온 값
max_range = 0 #최고 일교차 값
temp_range = 0 #일교차 값
daily_range = [] #생일날들의 일교차를 요소로 가진 리스트
maxmax_temp=[] # 최고기온 리스트
minmin_temp=[] #최저기온 리스트
birth_dailyrange = {} #{생일 : 일교차} 딕셔너리
for row in data :
if '-01-06' in row[0] :
birth_list.append(row[0]) #생일 리스트 생성
max_temp = float(row[-1])
min_temp = float(row[-2])
temp_range = max_temp - min_temp
daily_range.append(round(temp_range,2)) ##생일날들의 일교차를 요소로 가진 리스트 생성(소수 2번째자리 rounding)
maxmax_temp.append(round(max_temp,2))
minmin_temp.append(round(min_temp,2))
print("제 생년월일은 %s 입니다" %birth_list[0])
for i in range(len(birth_list)) :
print("%s의 일교차는 %.2f입니다." %(birth_list[i], daily_range[i]))
birth_dailyrange = {x : y for x, y in zip(birth_list, daily_range)} #{생일 : 일교차} 딕셔너리 생성
for i in range(len(daily_range)) : #최고 일교차 값 구하기
if daily_range[i] > temp_range :
temp_range = daily_range[i]
print("제 생일 중 가장 일교차가 큰 날은 %s이고, 일교차는 %.2f 입니다." %([k for k, v in birth_dailyrange.items() if v == temp_range], temp_range))
f.close()
plt.rc('font', size=20)
plt.rcParams["figure.figsize"] = (70,20)
plt.xlabel('date', fontsize=20)
plt.ylabel('daily range', fontsize=20)
plt.plot(birth_list,daily_range, label='daily_range')
plt.plot(birth_list,maxmax_temp, label='mx temp')
plt.plot(birth_list,minmin_temp, label='mn temp')
plt.legend(loc=2, fontsize=30)
plt.show()
'python > python 수업' 카테고리의 다른 글
딕셔너리 key/value 로 정렬 (0) | 2020.09.08 |
---|---|
fairytale slicing (0) | 2020.09.08 |
과제 - 생일 일교차 (0) | 2020.08.28 |
weather - colab 최고온도 (0) | 2020.08.18 |
p165 예제 lambda로 (0) | 2020.08.17 |