• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

fdr.StockListing('KRX') 이슈

22.11.18 18:41 작성 조회수 340

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

전체 종목을 불러올때 fdr.StockListing('KRX') 으로 받아오는데.. 교수님이 강의해주신 카테고리와 다르게 나오고 있습니다.

 

혹시나 해서 FinanceDataReader 사용자 안내 가서 봤는데.. 해당 부분에서는 교수님 설명그대로 나오고 있습니다...

 

FinanceDataReader에서 문제가 발생한건가요?

답변 1

답변을 작성해보세요.

0

안녕하세요.

최근 FinanceDataReader 에도 업데이트가 있었고 한국거래소에서 보내주는 데이터에 Market 이 누락되어 있습니다. 일단 아래 코드로 기존처럼 상장종목을 불러올 수 있지만 Market 은 제외하고 봐주세요!

FinanceDataReader 에서 최근 investing.com 에서 불러오는 종목 정보에 대한 이슈 때문에 yahoo finance 로 불러오는 위치가 변경되기도 했습니다. 대대적인 업데이트와 함께 한국거래소 제공데이터도 조금 달라지다보니 혼란을 드리게 되어 죄송합니다. 추가 업데이트가 있으면 다시 답글을 남기겠습니다.

아래의 코드를 사용하면 한국거래소의 상장종목을 바로 받아올 수 있습니다. 코드의 출처는 FinanceDataReader 내부 소스코드 입니다.

 

import pandas as pd

url = 'http://kind.krx.co.kr/corpgeneral/corpList.do?method=download&searchType=13'
df_listing = pd.read_html(url, header=0, flavor='bs4', encoding='EUC-KR')[0]
cols_ren = {'회사명':'Name', '종목코드':'Symbol', '업종':'Sector', '주요제품':'Industry', 
                    '상장일':'ListingDate', '결산월':'SettleMonth',  '대표자명':'Representative', 
                    '홈페이지':'HomePage', '지역':'Region', }
df_listing = df_listing.rename(columns = cols_ren)
df_listing['Symbol'] = df_listing['Symbol'].apply(lambda x: '{:06d}'.format(x))
df_listing['ListingDate'] = pd.to_datetime(df_listing['ListingDate'])
df_listing