yahoo finance와 python을 통해서 주식 데이터 불러오기

english post: https://joonprogramming.blogspot.com/2020/04/how-to-get-stock-data-using-python.html

안녕하십니까.
이번 포스팅에서는 파이썬을 통해서 야후의 주식 데이터를 불러들어오는 방법을 포스팅 하려고 합니다.
코드 링크 : https://github.com/Myeongjoon/GoogleSummerOfCode2020/blob/master/finance_data.ipynb

데이터 불러오기

야후의 finance api를 통해서 구글의 주가 데이터를 가져 옵니다. 
api 통신등의 세부 사항은 pandas_datareader 내부에 구현되어 있습니다.
아래와 같이 간단한 코드로 확인하실 수 있습니다.
데이터상의 시초가는 2004-08-19일로 되어 있기 때문에 해당 일자로 맞추었습니다.
from pandas_datareader import data
import matplotlib.pyplot as plt
import pandas as pd
start_date = '2004-08-19'
end_date = '2020-04-17'
google_data = data.DataReader('GOOGL','yahoo', start_date, end_date)
google_data.head(9)



구글 주가

종가 데이터 차트 확인

위 표로 볼 수 있는 데이터는 한계가 있기 때문에 plot을 통하여 데이터를 확인 합니다.

google_data['Close'].plot()

믿음의 구글 주가
역시 구글의 주가는 우상향입니다.

한국데이터 불러오기

야후 api를 통해서 미국 증시 뿐만 아니라 국내 증시 또한 불러올 수 있습니다.
저는 최근에 배당주에 관심이 많아졌기 때문에 맥쿼리 인프라의 데이터를 불러오도록 하겠습니다.

macq_start_date = '2007-12-28'
macq_end_date = '2020-04-17'
macq = data.DataReader('088980.ks', 'yahoo', macq_start_date, macq_end_date)
macq.head(9)
macq['Close'].plot()



위와 같이 종목 코드.ks를 붙임으로써 호출이 가능 합니다.
맥쿼리 주가

이상 데이터 제거하기 

맥쿼리 데이터를 불러올 경우 잘 불러오는거 같긴한데 아래와 같이 2012년도 부근에 이상한 데이터가 있습니다. 

위의 데이터가 정상 데이터인지는 모르겠지만 아무래도 분석하는 데에는 도움이 되지 않을 데이터 입니다. 따라서 삭제하겠습니다. 대략적으로 4만 이상이니 쉽게 제거가 가능 합니다.

macq[macq['Close'] > 40000]
아래와 같이 8개의 데이터를 발견하였고 이상한 데이터가 맞아 보입니다.

아래 코드를 통해서 위 데이터를 삭제 합니다.
macq = macq[macq['Close'] < 40000]
macq['Close'].plot()
맥쿼리 12년 데이터

최근 고점이 11,200원 부근인걸로 보아서 얼추 비슷합니다.

댓글

이 블로그의 인기 게시물

고려대학교 야간대학원 중간 후기

포켓몬 고 17셀 확인 포고맵 사용 방법

HTTP 오류 500.19 - Internal Server Error 에러 처리법