데이터 : 기상자료개방포털(데이터>날씨예보>동네예보>실황분석자료의 1시간 자료) 관측소지역은 강릉의 21개지역
1. 데이터 병합
상기 기상자료개방포털을 통해서 강릉의 21개의 관측소 데이터를 다운로드할 수 있습니다. 제가 지금부터 작업하고자 하는 것은 하나의 station의 최근 8년간의 데이터로 Boxplot*를 그리고자 합니다. 데이터는 연도별로 다운로드할 수 있으며, 8년간의 데이터를 가지고 Boxplot를 그리려면 데이터 병합하는 작업이 필요합니다. 그럼, 2가지 방법으로 데이터 병합을 진행해보도록 하겠습니다.
1.1. 박스플롯(Boxplot*)
우선, 박스플롯에 대해 간단하게 짚고 넘아가겠습니다. 어원에서 파악할 수 있듯이 박스플롯은 "박스"로 수치적 자료를 표현하는 그래프의 방식입니다. 이를 기술통계학(Descriptive Statistics)에서는 "box-and-whisker plot" 또는 "boxplot"이라고 하며, 탐색적 데이터분석(Exploratory Data Anaylsis, EDA)작업 시 사용합니다. 박스플롯을 통해서 데이터의 개략적인 정보를 확인할 수 있습니다. ▶ 최솟값, 제 1사분위, 제 2사분위, 제 3사분위, 최대값
2. glob.glob() 적용
파일이 하나 이상임으로 for문을 활용해보록 하겠습니다.
%matplotlib inline #그래프를 그리기위한 설정
mpl.rcParams['axes.unicode_minus'] = False #그래프에서 마이너스 폰트 이슈 해결방안
import glob
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm # 필요한 패키지와 라이브러리 import
input_path = "/home/park/PROJ_무더위쉼터/DATA/*교1동.csv"
for f in glob.glob(input_path):
print(f)
print(f) 결과 :/home/park/PROJ_무더위쉼터/DATA/17교1동.csv /home/park/PROJ_무더위쉼터/DATA/15교1동.csv /home/park/PROJ_무더위쉼터/DATA/13교1동.csv /home/park/PROJ_무더위쉼터/DATA/14교1동.csv /home/park/PROJ_무더위쉼터/DATA/11교1동.csv /home/park/PROJ_무더위쉼터/DATA/16교1동.csv /home/park/PROJ_무더위쉼터/DATA/18교1동.csv /home/park/PROJ_무더위쉼터/DATA/12교1동.csv
print(f)결과를 보면, 정렬된 상태가 아닙니다. sorted()를 이용해서 변경하겠습니다.
input_path = "/home/park/PROJ_무더위쉼터/DATA/*교1동.csv"
output_file = "/home/park/PROJ_무더위쉼터/DATA/교1동11-18.csv"
all_data = pd.DataFrame()
for f in sorted(glob.glob(input_path)) :
df = pd.read_csv(f, names = ['Day','Hour','TEM'], skiprows=[0])
all_data = all_data.append([df],ignore_index=True, sort= False)
#all_data.to_csv(output_file)
#print(all_data)
DATA=[all_data['TEM']]
print(DATA)
주석처리한 부분(#print(all_data))를 확인해보시면 정렬이 된 것을 확인할수 있습니다. 그럼, 병합된 데이터를 이용해서 "교1동"의 boxplot를 그려보록 하겠습니다.
Boxplot is probably one of the most common types of graphics. It gives a nice summary of one or several numeric variables. The line that divides the box into 2 parts represents the median of the data. The end of the box shows the upper and lower quartiles. The extreme lines show the highest and lowest value excluding outliers.