반응형

파이썬 Matplotlib을 이용한 데이터 시각화 프로그래밍9 - pandas를 이용해 주식 차트 그리기



pandas는 파이썬을 위한 데이터 구조 및 분석을 위한 매우 편리하고 고성능의 오픈소스 라이브러리 입니다. BSD 라이선스라서 pandas를 누구나 수정하여 사용할 수 있고, 재배포의 의무가 없으며 심지어 상용 소프트웨어에서도 제한없이 사용할 수 있습니다.


8편에서 주식 차트를 그리기위해 야후의 Open API URL주소를 이용해서 데이터를 가져오고 그것을 numpy.loadtxt()라는 함수로 주가 데이터를 파싱하여 matplotlib으로 차트를 그리는 알고리즘이었습니다.


자, 이제는 pandas를 이용해 8편과 동일한 프로그램을 만들어 보겠습니다. pandas의 위력을 조금이나마 알 수 있습니다. 먼저 pandas를 사용하기 위해서는 pandas를 우리의 컴퓨터에 설치를 해야겠지요..

PIP를 이용해 pandas를 설치합니다.


D:\> pip install pandas


그리고 pandas로부터 독립을 선언(?)한 pandas_datareader 모듈을 PIP로 설치합니다.


D:\> pip install pandas_datareader


무사히 잘 설치되었다면 파이썬을 구동해서 pandas를 import 해봅니다. 오류없다면 설치끝~


이제 아래의 코드를 보시죠~




8편의 코드에 비해 많이 단순하게 되었습니다. 살포시 코드로 가보죠..


>>> import pandas_datareader.data as web


pandas의 독립적인 모듈인 pandas_datareader.data를 web이라는 별명으로 import 합니다.



>>> def viewStockTrend(compcode)


인자로 입력된 compcode에 해당되는 주가 정보를 가져와서 matploitlib으로 화면에 그래프를 그려주는 함수입니다.



>>> start = datetime.datetime(2015, 2, 2)

>>> end = datetime.datetime(2016, 7, 13)


datetime.datetime(2015, 2, 2)는 2015-02-02 00:00:00 형식으로 변환해줍니다.


start와 end는 살펴볼 기간입니다.



>>> stock = web.DataReader(compcode, 'yahoo', start, end)


이 부분은 야후로부터 종목코드 compcode에 해당하는 주가 정보를 start, end로 지정된 기간만큼 가져와서 stock 변수에 담습니다.

만약 start와 end가 생략되면 2010-01-01 부터 프로그램을 구동한 현재까지의 주가정보를 가져오고, start만 인자로 입력하면 start부터 현재까지의 주가정보를 가져옵니다.


삼성전자의 2015년 2월 2일부터 2016년 7월 13일까지의 주가 그래프를 결과로 그려줍니다.

이와 같이 pandas를 이용하면 복잡한 작업을 매우 편리하게 해주는 기능들을 활용할 수 있어 프로그래밍이 매우 단순해집니다.


pandas에 대해서는 시간이 나는대로 별도로 포스팅할 예정입니다.


반응형

+ Recent posts