본문 바로가기
Python/Basic Data Analysis

[Python] 금융(주가) 데이터 불러오기

by JKyun 2017. 12. 5.

안녕하세요 우주신 입니다.


오늘은 pandas를 이용하여 웹에서 주가 데이터를 가져오는 방법에 대해 포스팅 하겠습니다.


datetime.datetime(), pandas_datareader.DataReader(), pd.date_range(), quandl.get()



우선, 필요한 패키지를 다 다운 받습니다.

그 후, pandas_datareader의 DataReader를 이용해 웹에서 주가 데이터를 다운 받겠습니다.


1. pandas_datareader.DataReader(ticker, online_source, start, end)


삼성전자 티커를 넣고 yahoo 웹에서 2010년 1월 1일부터 2016년 12월 31일까지 데이터를 데이터프레임 df에 입력했습니다.

여기서 online_source는 yahoo 뿐만이 아니라 Google, FRED, Fama/French 등등을 사용할 수 있습니다.


출력 결과, Open, High, Low, Close, Adj Close, Volume 순으로 삼상전자 데이터를 들고 온 것을 확인 할 수 있습니다.


종가 'Close' 열만 따로 데이터프레임 df_close에 입력 했습니다.


그리고 종가만 출력되는 것을 확인할 수 있습니다.


pd.date_range를 이용하여 start 날짜부터 end 날짜 사이 중 평일만 추려냈습니다. 

pd.date_range(start, end, freq = ' ') 

그 외 나머지 기능들은 찾아보십시오!


출력 결과,


그리고 only_weekdays의 데이터에 따라 df_close 데이터프레임을 평일 기준으로 다시 나타냈습니다.


출력 결과,



2. quandl.get(TICKER, trim_start = 'date', authtoken = api_key)


데이터(특히, 금융데이터)를 다운 받는 다른 방법으로 quandl 모듈도 많이 사용합니다.

이것 또한 아주 간단한데요, 우선 import quandl 꼭 해주셔야 합니다. 

오류가 나는 경우, 대부분은 pip install quandl (파이썬 버전에 따라 pip3 install quandl) 코드를 통해 설치하면 아마 해결 될 거에요.



api_key = open('quandlapikey.txt', 'r').read()

api key는 https://www.quandl.com/ 홈페이지에서 로그인 한 후 받을 수 있습니다.


quandl.get("FRED/GDP", trim_start='2000-01-01', authtoken=api_key)

TICKER 값으로 gdp를 넣었습니다. 원하시는 데이터의 티커값을 넣으시면 됩니다.

trim_start는 불러올 데이터의 시작하는 날짜를 입력하면 됩니다.

authtoken의 경우 앞서 받은 api_key를 입력해주시면 돼요.


데이터 열의 이름을 보기 좋게 GDP로 바꾼 후 출력해봤습니다.






수고하셨습니다~







댓글