상세 컨텐츠

본문 제목

24일차 데이터 분석_공공기온데이터 이용

풀스텍과정

by 정태웅 2024. 6. 13. 09:27

본문

import csv
f = open("seoule.csv", "r", encoding = "utf8")
data = csv.reader(f, delimiter = ",")
header = next(data)                                  # 처음 헤더정보를 읽어옴
print(header)  
max_temp = -999                                      # 최고 기온을 저장할 변수 초기화
max_data = ""                                        # 최고 기온이었던 날짜를 저장할 변수 초기화
min_temp = 999                                       # 최저 기온을 저장할 변수 초기화
min_data = ""                                        # 최저 기온이었던 날짜를 저장할 변수 초기화

for row in data:                                     # 헤더 다음 row부터 읽어 옴
    print(row)
       
    if row[-1] == "":
       row[-1] = -999

    if row[-2] == "":
       row[-2] = 999      
    row[-1] = float(row[-1])
    row[-2] = float(row[-2])
   
    if max_temp < row[-1]:
       max_temp = row[-1]
       max_data = row[0]
         
    if min_temp > row[-2]:
       min_temp = row[-2]
       min_data = row[0]        
         
f.close()

print (f"대한민국 서울 기상관측 이례 가장 더웠던 날짜: {max_data}, 온도:{max_temp} 입니다.")
print (f"대한민국 서울 기상관측 이례 가장 추웠던 날짜: {min_data}, 온도:{min_temp} 입니다.")

입력받은 날짜의 최고온도 최저온도 구하기

import csv
import datetime as dt

f = open("seoule.csv", "r", encoding = "utf8")
data = csv.reader(f, delimiter = ",")



inData = input("날짜(YYYY-MM-DD)를 입력하세요: ")

next(data)
found = False

for row in data:                                     # 헤더 다음 row부터 읽어 옴

    if row[0] == inData:
       print(f" 입력한 날짜: {inData} 서울의 최고온도: {row[-1]} 최저온도: {row[-2]} 입니다.")
       found = True
       break
if not found:
    print("해당 날짜의 데이터가 존재하지 않습니다. ")    
   
f.close()

내가 태어난 이후의 생일에  최고기온 최저기온 변화 추이 분석

import csv
import matplotlib.pyplot as plt
#import matplotlib.font_manager as fm

# 나눔글꼴 경로 설정
#font_path = 'C:/Windows/Fonts/NanumGothic.ttf'

# 폰트 이름 가져오기
#font_name = fm.FontProperties(fname=font_path).get_name()

# 폰트 설정
# plt.rc('font', family=font_name)


f = open("seoule.csv", "r", encoding = "utf8")
data = csv.reader(f, delimiter = ",")
next(data)
hight = []                                          # 최고 기온 데이터를 저장할 리스트 생성
low = []                                            # 최저 기온 데이터를 저장할 리스트 생성

for row in data:      
    if row[0] < "1970-06-01":
       continue
                                 
    if row[-1] != "":                                # 최고 기온 데이터 값이 존재한다면
       if row[0].split("-")[1] == "06" and row[0].split("-")[2] == "01":              # 매년 6월 1일 데이터만 추출
          hight.append(float(row[-1]))              # hight 리스트에 최고 기온 값 추가
    if row[-2] != "":                               # 최저 기온 데이터 값이 존재한다면
       if row[0].split("-")[1] == "06" and row[0].split("-")[2] == "01":              # 매년 6월 1일 데이터만 추출
          low.append(float(row[-2]))              # low 리스트에 최wj 기온 값 추가          
f.close()

plt.rc("font", family = "Malgun Gothic")
plt.rcParams["axes.unicode_minus"] = False
plt.title("내 생일의 기온 변화 그래프")                        # 제목

plt.plot(hight, color = "hotpink")        # highit 리스트에 저장된 값을 hotpink색으로 그래프로 그리기
plt.plot(low, color = "cyan")             # low 리스트에 저장된 값을 cyan색으로 그래프로 그리기
plt.legend()                                          # 범례의 위치 지정
plt.show()

관련글 더보기