본문 바로가기

Python

pandas/공공데이터 활용1) 기상관측이래 서울의 최고기온은?

오늘은 판다스 모듈과 기상청 공공데이터를 이용하여, 특정지역의 기록적인 온도를 알아보는 파이썬 프로그램을 작성해봤습니다.

'모두의 데이터분석, 길벗, 송석리, 이현아 지음'이라는 책에서는 마지막 15장에만 pandas를 활용하고 기본적으로 csv화일다루기로 코드화 되어있는데, 저는 이 예제들을 저의 관심사에 맞게 pandas로 구현해보고자 했습니다.

혹시나 문의사항있으시면 댓글남겨주세요.

기상자료포털 사이트 > 기후통계분석 > 기온분석에서 1904년1월1일~2020년10월1일까지의 서울의 기온데이터를 csv화일로 다운로드 받아서 분석 진행했습니다.

서울 기온데이터의 일부분

import os, csv
import pandas as pd

d_path='d:/Coding/my_coding/data/'

# data download from https://data.kma.go.kr/ > 기후통계분석 > 기온분석, 
# 서울 1904년1월1일부터 2020년10월3일까지의 데이터를 csv로 다운로드해서 사용함
f_name = d_path+'Temp_Seoul_1904Jan_2020Oct.csv'
df=pd.read_csv(f_name, header=0, index_col=0, encoding='cp949')

# head info
print(df.head()) # date, location, avg_temp, low_temp, high_temp
df.dtypes()

# change column from Korean to English 
df.columns=['Location','Temp_avg','Temp_low','Temp_high'] 
df.index

########################
# max temp of high_temp
########################
a1= df['Temp_high'].max()
print('max temperature is {}'.format(df['Temp_high'].max()))

# # Date which was max Temp_high
b1=df.index[df['Temp_high'] == df['Temp_high'].max()][0]
print('기상관측이래 서울의 최고기온은 {}로,  {}일 이었습니다.'.format(a1,b1))

#########################
# # min temp of low_temp
#########################
a2= df['Temp_low'].min()
#print('min temperature was {}'.format(df['Temp_low'].min()))

# # Date which was min Temp_low
b2= df.index[df['Temp_low'] == df['Temp_low'].min()][0]
print('기상관측이래 서울의 최저기온은 {}로,  {}일 이었습니다.'.format(a2,b2))

##########################################
#### 관심있는 날짜를 지정후 날씨 정보 파악
##########################################
Doi='1974-04-30' # Day_of_interest
print('The weather on DOI was\n', df[df.index == Doi])