본문 바로가기

API

[FinanceDataReader] 설치 및 주식 주가 정보 가져오기(코스피, 코스닥)

반응형

국내 주식 정보를 가져와 보겠습니다.

FinanceDataReader의 수집데이터의 변경이 있었네요. 내용 수정했습니다(2022/11/09)

1. FinanceDataReader 설치
2. 종목 정보 가져오기
3. 주가 정보 가져오기

1. FinanceDataReader 설치

명령프롬프트에서 아래의 명령어로 설치 가능합니다.
anaconda의 경우는 anaconda prompt에서 입력하시면 됩니다.

pip install -U finance-datareader

 

2. 종목 정보 가져오기

아래의 명령어로 각 거래소별 종목 정보의 수집이 가능합니다.
Symbol부분에는 위 표의 심볼의 문자를 넣으시면 됩니다.

fdr.StockListing('Symbol')

각 거래소별 종목 수를 구해보겠습니다.
전체 7029개 중 KOSPI 5300개가 확인이 됩니다.

symbols=['KRX','KOSPI','KOSDAQ','KONEX']

for symbol in symbols:
    print(symbol)
    print(fdr.StockListing(symbol).shape)


주가 정보를 가져오기 위해서는 종목 코드가 필요한데,
원하는 종목의 코드를 가져와 보겠습니다.
우선 전체 종목의 데이터를 가져와 정보를 확인하겠습니다.
Name : 회사명, Symbol : 코드명 이 되겠네요

df_list=fdr.StockListing('KRX')
df_list.head()

검색어 전체 일치의 경우는

name='삼성전자'
df_filter=df_list.loc[df_list['Name']==name]
df_filter

Code만 나중 주가 확인을 위해 따로 저장하겠습니다.

code=df_filter['Code'].values[0]

검색어를 일부만 검색하는 경우는

name='에너지솔루션'
df_filter=df_list.loc[df_list['Name'].str.contains(name)]
df_filter

에너지 솔루션이 포함된 검색이라 결과가 복수개 검색이 됩니다.

나중에 주가를 검색할 Code만 저장하면 됩니다.
여기서는 loc으로 'LG에너지솔루션'을 지정해보겠습니다.
df_list['index','column명'] 이 되겠습니다.

code=df_filter.loc[1,'Code']

 

3. 주가 정보 가져오기

fdr.DataReader() 함수를 사용하시면 되는데,
fdr, DataReader('종목코드', '시작날짜', '종료날짜')로 사용하시면 됩니다.
'시작날짜', '종료날짜'는 생략이 가능하고 생략시 전체 데이터 확인이 됩니다.

위에서 확인한 삼성전자로 예를 들면 1998년 데이터부터 수집이 됩니다.

name='삼성전자'
df_filter=df_list.loc[df_list['Name']==name]
code=df_filter['Code'].values[0]

df_result=fdr.DataReader(code)
df_result


'종료날짜'만 생략하면, 시작날짜부터 현재까지 수집이 됩니다.

name='삼성전자'
df_filter=df_list.loc[df_list['Name']==name]
code=df_filter['Code'].values[0]
startdate='2010-01-01'

df_result=fdr.DataReader(code,startdate)
df_result



'종료날짜'까지 넣으면 종료날짜까지 수집이 되겠죠.
확인해보겠습니다.

name='삼성전자'
df_filter=df_list.loc[df_list['Name']==name]
code=df_filter['Code'].values[0]
startdate='2010-01-01'
enddate='2020-12-30'

df_result=fdr.DataReader(code,startdate,enddate)
df_result



이상으로 국내 주식 정보를 가져와 봤습니다.

반응형