프로젝트 개요
- 금, 원달러 시세 동향을 파악하여 경제 안정성을 확인할 수 있다.
- 금 시세가 상승할수록 경제는 불안정하다.
데이터 수집
- KRX정보데이터시스템에서 추출(2020.01 ~ 2023.12.15)
- 한국은행 경제통계시스템에서 추출(2020.01 ~ 2023.12.15)
활용 데이터 유형
- 날짜 데이터 (date)
- 금액 데이터 (float) : 금은 원/g, 환율은 USD/KRW
데이터 전처리(정규화)
- 금 시세, 원달러 환율이 같은 날짜에 존재하지 않는다면 결측치로 제외
- 2020~2023까지 분기단위로 평균금액 표시
#dataset : 일자별 금(종가기준), data2 : 일자별 원달러 환율(종가기준) select d.date, d.last_price , d2.종가 from dataset d inner join data2 d2 on d.`date` = d2.일자
# 분기별 평균가액 SELECT YEAR(`date`) YEAR, QUARTER(`date`) as QUARTER, count(1) DAYS, sum(종가) as "원/달러 합산", SUM(last_price) as "금_가격 합산", ROUND(sum(종가)/count(1)) as 원달러평균가액, ROUND(sum(last_price)/count(1)) as 금_평균가액 from new_schema.dataset d inner join new_schema.data2 d2 on d.`date` = d2.일자 group by 1, 2 # 월별 평균가액 SELECT YEAR(`date`) YEAR, MONTH(`date`) MONTH, count(1) DAYS, sum(종가) as "원/달러 합산", SUM(last_price) as "금_가격 합산", ROUND(sum(종가)/count(1)) as 원달러평균가액, ROUND(sum(last_price)/count(1)) as 금_평균가액 from new_schema.dataset d inner join new_schema.data2 d2 on d.`date` = d2.일자 group by 1, 2
- 분기별
- 월별
시각화
- SQL로 전처리한 분기별 데이터를 Colab으로 불러와 시각화 구현
#라이브러리 호출 import pandas as pd import matplotlib.pyplot as plt #csv파일 불러오기 data = pd.read_csv('파일경로') #필요 컬럼만 새로 데이터셋 만들기 #연도와 분기를 한 컬럼으로 합치기 dollar_set = data[['YEAR', 'QUARTER', '원달러평균가액']] dollar_set['연_분기'] = dollar_set['YEAR'].map(str)+"_"+dollar_set['QUARTER'].map(str) gold_set = data[['YEAR', 'QUARTER', '금_평균가액']] gold_set['연_분기'] = gold_set['YEAR'].map(str)+"_"+gold_set['QUARTER'].map(str) #이중축 plot 차트 ```python fig, ax1 = plt.subplots() # subplots 함수로 이중축 생성 plot1 = ax1.plot(gold_set['연_분기'], gold_set['금_평균가액'], color = 'y', marker ='o', markersize=4, markerfacecolor='grey') ax1.set_xlabel('연도별 분기') ax1.set_ylabel('금 시세') plt.xticks(rotation=90) ax2 = ax1.twinx() # ax1과 ax2 연결 plot2 = ax2.plot(dollar_set['연_분기'], dollar_set['원달러평균가액'], color ='r', marker ='o', markersize=4, markerfacecolor='grey') ax2.set_ylabel('원달러 환율') #두 개의 plot을 묶어서 라벨을 직접 표시하는 직관적인 방법 plot = plot1 + plot2 # plot차트를 위에서 각각 변수 지정하여 plot으로 묶기 #plot을 핸들로 지정, [라벨 지정:plot변수의 순서대로], loc로 'upper left' 지정 ax1.legend(plot, ['금시세','원달러 환율'], loc = 2) plt.title('분기별 금, 원달러 가격') plt.show()
plot 차트 이미지
범례 개별 설정 ver.
fig, ax1 = plt.subplots() line1 = ax1.plot(gold_set['연_분기'], gold_set['금_평균가액'], label='금 시세',color = 'y', marker ='o', markersize=4, markerfacecolor='grey') ax1.set_xlabel('연도별 분기') ax1.set_ylabel('금 시세') plt.xticks(rotation=90) ax2 = ax1.twinx() line2 = ax2.plot(dollar_set['연_분기'], dollar_set['원달러평균가액'],label='원달러 환율',color ='r', marker ='o', markersize=4, markerfacecolor='grey') ax2.set_ylabel('원달러 환율') # 개별 라벨로 설정해두었을 경우 ax2.legend(loc='upper left', fontsize=10, bbox_to_anchor=(0.2, 1)) ax1.legend(loc='upper left', fontsize=10, bbox_to_anchor=(0, 1)) plt.title('분기별 금, 원달러 가격') plt.show()
결론 도출
- 전반적으로 금, 원달러는 가치가 하락하는 추세를 보이고 있다.
- 22년도 하반기(2022_3~4)에 원달러 환율은 상승하는 반면 금 시세는 하락하는데 다른 이유가 있을 것이다.
- 안전자산인 금과 달러의 변화는 대체로 동반 상승하며, 둘의 격차가 보이는 지점에서 경제의 불안정성이 존재하는지 상세한 원인을 찾아볼 필요가 있다.