이번 포스팅은 파이썬 주식정보 분석 방법 마지막 글로 파이썬 pykrx 사용법에 대해 정리해보았습니다. pykrx 설치 및 기본 사용법과 더불어 주요 기능과 메서드 예시를 함께 알아보려고 합니다.
앞선 포스팅에서는 파이썬 yfinance 및 FinancedataReader 사용법에 대해서 정리한 바 있습니다. pykrx는 한국 주식 데이터를 손쉽게 가져올 수 있는 파이썬 라이브러리입니다. 이 라이브러리를 사용하면 KRX(Korea Exchange)에서 제공하는 주가 데이터, 재무제표, 지수 정보, 공매도 데이터 등 다양한 데이터를 쉽게 가져올 수 있습니다.
pykrx는 FinanceDataReader와 비슷하지만, 개인적으로 더 많은 종류의 한국 주식 데이터를 제공하고 있는 것 같다고 생각합니다.
이번 포스팅에서는 가장 기본적인 파이썬 pykrx 설치 방법과 기본 사용법, 그리고 주요 기능 – 메서드에 대해 알아보고 마지막으로 앞서 소개한 파이썬 yfinance 및 FinancedataReader과 어떻게 조화롭게 사용할 수 있는지에 대해서 정리해보려고 합니다.
파이썬 pykrx 설치 및 기본 사용법
파이썬 pykrx 라이브러리는 역시 pip를 통해 설치할 수 있습니다. 터미널이나 명령 프롬프트에서 다음 명령어를 입력하여 설치합니다.
pip install pykrx
pykrx 기본 사용법
파이썬 pykrx 라이브러리를 사용하기 위해서는 먼저 라이브러리를 import해야 합니다. 그 후, 주요 기능들을 활용할 수 있습니다. 아래는 간단한 사용 예시입니다.
참고로 matplotlib가 설치되어 있지 않을 경우에는 에러가 발생할 수 있으므로 pip install matplotlib를 통해 미리 설치를 진행해줍니다.
from pykrx import stock # 삼성전자의 주가 데이터 가져오기 ticker = "005930" start_date = "20210101" end_date = "20211231" price_data = stock.get_market_ohlcv_by_date(start_date, end_date, ticker) print(price_data)
위의 코드는 삼성전자(005930)의 2021년 1월 1일부터 2021년 12월 31일까지의 주가 데이터를 가져옵니다. 비슷한 방식으로 다른 종목의 데이터도 가져올 수 있습니다.
파이썬 pykrx 라이브러리 주요 기능
파이썬 pykrx 라이브러리는 다양한 기능을 제공합니다. 몇 가지 주요 기능들은 다음과 같습니다.
주가 데이터 조회
특정 종목의 주가 데이터를 조회할 수 있습니다. 이 때, 조회 기간을 설정할 수 있습니다.
참고로 아래 코드는 pykrx 라이브러리를 사용하여 삼성전자(종목 코드: 005930)의 2021년 1월 1일부터 2021년 12월 31일까지의 OHLCV(시가, 고가, 저가, 종가, 거래량) 데이터를 가져오는 예제입니다. 가져온 데이터는 Pandas DataFrame 형태로 저장되며, 이를 print()
함수를 사용하여 출력합니다.
# pykrx 라이브러리에서 stock 모듈을 가져옵니다. from pykrx import stock # stock.get_market_ohlcv_by_date() 함수를 사용하여 삼성전자(005930)의 2021년 1월 1일부터 2021년 12월 31일까지의 OHLCV 데이터를 가져옵니다. # 함수 인자는 순서대로 시작 날짜, 종료 날짜, 종목 코드를 나타냅니다. price_data = stock.get_market_ohlcv_by_date("20210101", "20211231", "005930") # 가져온 데이터를 출력합니다. print(price_data)
종목 목록 조회
KOSPI, KOSDAQ, KONEX 시장의 종목 목록과 종목 코드를 가져올 수 있습니다.
from pykrx import stock kospi_list = stock.get_market_ticker_list("20210101", market="KOSPI") print (kospi_list)
지수 정보 조회
KOSPI, KOSDAQ, KONEX 시장의 지수 정보를 가져올 수 있습니다.
# pykrx 라이브러리에서 stock 모듈을 가져옵니다. from pykrx import stock # stock.get_market_ticker_list() 함수를 사용하여 2021년 1월 1일 기준 KOSPI 시장의 종목 리스트를 가져옵니다. # 함수 인자는 순서대로 조회 기준일과 시장 구분을 나타냅니다. kospi_list = stock.get_market_ticker_list("20210101", market="KOSPI") # 가져온 종목 리스트를 출력합니다. print(kospi_list)
DIV/BPS/PER/EPS/PBR 데이터를 조회
get_market_fundamental() 함수는 특정 종목에 대해 입력된 기간의 DIV/BPS/PER/EPS/PBR 데이터를 조회합니다. 이를 사용하면, 주어진 기간 동안의 일자별 혹은 월별 DIV/BPS/PER/EPS 데이터를 확인할 수 있습니다.
예를 들어, 다음 코드는 2021년 1월 4일부터 1월 8일까지 삼성전자(005930)의 일자별 DIV/BPS/PER/EPS/PBR 데이터를 가져옵니다.
from pykrx import stock df = stock.get_market_fundamental("20210104", "20210108", "005930") print(df.head(2))
이 외에도 pykrx 라이브러리는 여러 가지 메서드를 제공하고 있습니다. 필요한 기능에 따라 적절한 메서드를 사용하여 데이터를 가져올 수 있습니다. 자세한 사용법과 문서는 pykrx 라이브러리의 공식 문서를 참고할 수 있습니다.
파이썬 pykrx 한계점
pykrx 라이브러리도 매우 뛰어난 기능을 제공하지만, 굳이 한계점을 정리하자면 아래와 같습니다.
- 국내 주식 데이터에 한정: pykrx는 한국 주식 데이터에 특화되어 있기 때문에, 해외 주식 데이터를 가져오기에는 적합하지 않습니다. 해외 주식 데이터를 가져오려면 yfinance나 다른 라이브러리를 사용해야 합니다.
- 데이터 갱신 지연: KRX에서 제공하는 데이터를 기반으로 하기 때문에, KRX의 데이터 갱신 지연이 pykrx에도 영향을 줄 수 있습니다. 따라서, 최신 데이터를 가져오는 데에 있어서 지연이 발생할 수 있습니다.
- 별도의 종목 검색 기능 없음: 종목 코드를 알아야 해당 종목의 데이터를 가져올 수 있습니다. 다만, get_market_ticker_list() 함수를 사용하여 시장별 종목 코드와 이름을 가져올 수 있습니다.
yfinance, FinanceDataReader 그리고 Pykrx
국내 주식 데이터를 분석하고 연구하는 데 유용한 도구인 pykrx 라이브러리는 앞서 소개한 파이썬 yfinance 및 FinancedataReader와 함께 사용하면 더욱 효과적인 데이터 수집과 분석이 가능합니다. 각 라이브러리의 특징을 살려서 조합하면 다음과 같은 방법으로 활용할 수 있습니다.
참고로 아래는 개인적인 의견입니다.
1. 종목 코드 및 기본 정보 수집: FinanceDataReader
FinanceDataReader는 한국 주식 시장의 종목 코드와 기본 정보를 쉽게 가져올 수 있습니다. 종목 코드와 기본 정보를 먼저 FinanceDataReader를 사용하여 수집한 뒤, 이를 기반으로 다른 라이브러리를 활용할 수 있습니다.
import FinanceDataReader as fdr # KOSPI 및 KOSDAQ 종목 목록 가져오기 kospi_list = fdr.StockListing('KOSPI') kosdaq_list = fdr.StockListing('KOSDAQ') print(kospi_list) print(kosdaq_list)
2. 주가 데이터 수집: pykrx
pykrx 라이브러리를 사용하면 한국 주식의 일별 시세 데이터를 정확하게 가져올 수 있습니다. FinanceDataReader에서 수집한 종목 코드를 이용하여 주가 데이터를 가져옵니다.
from pykrx import stock # 삼성전자의 주가 데이터 가져오기 (시작일, 종료일 지정) ticker = "005930" price_data = stock.get_market_ohlcv_by_date("20210101", "20211231", ticker) print(price_data)
3. 국제 주식 및 인덱스 데이터 수집: yfinance
yfinance는 국제 주식 및 인덱스 데이터를 손쉽게 가져올 수 있습니다. 국내 주식 데이터와 함께 국제 주식 데이터를 분석할 때 yfinance를 사용할 수 있습니다.
import yfinance as yf # 애플(AAPL) 주식 데이터 가져오기 ticker = "AAPL" stock_info = yf.Ticker(ticker) historical_data = stock_info.history(period="1y") print(historical_data)
위와 같이 FinanceDataReader, pykrx, yfinance 라이브러리를 조합하여 사용하면, 국내 주식 시장의 종목 코드와 기본 정보, 주가 데이터, 그리고 국제 주식 및 인덱스 데이터를 효과적으로 수집하고 분석할 수 있습니다. 이렇게 얻은 데이터를 활용하여 주식 시장의 흐름을 파악하거나 개별 종목의 가치를 평가하는 데 도움이 됩니다.
이번 포스팅에서는 가장 기본적인 파이썬 pykrx 설치 방법과 기본 사용법, 그리고 주요 기능 – 메서드에 대해 알아보고 마지막으로 앞서 소개한 파이썬 yfinance 및 FinancedataReader과 어떻게 조화롭게 사용할 수 있는지에 대해서 정리해보았습니다.
앞선 포스팅에서 정리한 파이썬 코딩 및 프로그래밍 관련 글은 아래와 같습니다.
VSCODE 파이썬 설치 오류 1분내 해결 방법 (Error while installing ‘Python’ extension 오류)