파이썬 주식정보 분석 (3) 파이썬 pykrx 사용 및 설치 방법, 기본 메서드, 특징과 한계점

이번 포스팅은 파이썬 주식정보 분석 방법 마지막 글로 파이썬 pykrx 사용법에 대해 정리해보았습니다. pykrx 설치 및 기본 사용법과 더불어 주요 기능과 메서드 예시를 함께 알아보려고 합니다.

앞선 포스팅에서는 파이썬 yfinanceFinancedataReader 사용법에 대해서 정리한 바 있습니다. pykrx는 한국 주식 데이터를 손쉽게 가져올 수 있는 파이썬 라이브러리입니다. 이 라이브러리를 사용하면 KRX(Korea Exchange)에서 제공하는 주가 데이터, 재무제표, 지수 정보, 공매도 데이터 등 다양한 데이터를 쉽게 가져올 수 있습니다.

pykrx는 FinanceDataReader와 비슷하지만, 개인적으로 더 많은 종류의 한국 주식 데이터를 제공하고 있는 것 같다고 생각합니다.

이번 포스팅에서는 가장 기본적인 파이썬 pykrx 설치 방법과 기본 사용법, 그리고 주요 기능 – 메서드에 대해 알아보고 마지막으로 앞서 소개한 파이썬 yfinanceFinancedataReader과 어떻게 조화롭게 사용할 수 있는지에 대해서 정리해보려고 합니다.


파이썬 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 라이브러리는 다양한 기능을 제공합니다. 몇 가지 주요 기능들은 다음과 같습니다.

주가 데이터 조회

특정 종목의 주가 데이터를 조회할 수 있습니다. 이 때, 조회 기간을 설정할 수 있습니다.

참고로 아래 코드는 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)
파이썬 pykrx


지수 정보 조회

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 라이브러리도 매우 뛰어난 기능을 제공하지만, 굳이 한계점을 정리하자면 아래와 같습니다.

  1. 국내 주식 데이터에 한정: pykrx는 한국 주식 데이터에 특화되어 있기 때문에, 해외 주식 데이터를 가져오기에는 적합하지 않습니다. 해외 주식 데이터를 가져오려면 yfinance나 다른 라이브러리를 사용해야 합니다.
  2. 데이터 갱신 지연: KRX에서 제공하는 데이터를 기반으로 하기 때문에, KRX의 데이터 갱신 지연이 pykrx에도 영향을 줄 수 있습니다. 따라서, 최신 데이터를 가져오는 데에 있어서 지연이 발생할 수 있습니다.
  3. 별도의 종목 검색 기능 없음: 종목 코드를 알아야 해당 종목의 데이터를 가져올 수 있습니다. 다만, get_market_ticker_list() 함수를 사용하여 시장별 종목 코드와 이름을 가져올 수 있습니다.

yfinance, FinanceDataReader 그리고 Pykrx

국내 주식 데이터를 분석하고 연구하는 데 유용한 도구인 pykrx 라이브러리는 앞서 소개한 파이썬 yfinanceFinancedataReader와 함께 사용하면 더욱 효과적인 데이터 수집과 분석이 가능합니다. 각 라이브러리의 특징을 살려서 조합하면 다음과 같은 방법으로 활용할 수 있습니다.

참고로 아래는 개인적인 의견입니다.

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 설치 방법과 기본 사용법, 그리고 주요 기능 – 메서드에 대해 알아보고 마지막으로 앞서 소개한 파이썬 yfinanceFinancedataReader과 어떻게 조화롭게 사용할 수 있는지에 대해서 정리해보았습니다.


앞선 포스팅에서 정리한 파이썬 코딩 및 프로그래밍 관련 글은 아래와 같습니다.

VSCODE 파이썬 설치 오류 1분내 해결 방법 (Error while installing ‘Python’ extension 오류)

파이썬 웹자동화 (3) 셀레니움 화면조작 : 입력, 클릭 및 선택 방법 (웹 자동로그인, 자동검색)

Leave a Comment