안녕하세요 우주신 입니다.
오늘은 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로 바꾼 후 출력해봤습니다.
끝
수고하셨습니다~
'Python > Basic Data Analysis' 카테고리의 다른 글
[Python] 이동평균 계산 (pandas.Series.rolling) (0) | 2017.12.28 |
---|---|
[Python] Missing Data(NA, NaN) 결측값 처리 (1) | 2017.12.06 |
[Python] 데이터프레임 병합 (.merge) (0) | 2017.11.28 |
[Python] 데이터프레임 결합 (.concat, .append) (1) | 2017.11.27 |
[Python] 데이터프레임 관련 기본 함수(shape, dtypes, axes, T, index, ix[], columns) (0) | 2017.09.10 |
댓글