inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기

5.1 '업종 테마주 수집'시 FinanceDataReader의 KRX 종목명이 모두 영문으로 변경된 것 같습니다.

해결된 질문

464

비현

작성한 질문수 2

1

안녕하세요.

강의 덕분에 즐겁게 보내고 있는 수강생입니다^^;

다시 한 번 강의 만들어주셔서 감사하다는 말씀을 먼저 드립니다.

 

현재 '5.1 업종 테마주 수집' 강의 중 '1.3 tqdm은?'을 강의를 보며 공부하고 있는데요.

제가 실행해보니 get_item_info 함수를 통해 종목코드 값을 result 변수로 저장하는 과정에서 문제가 발생했습니다.

 

원인을 찾아보니,

제약업종 정보를 수집한 raw와 FinanceDataReader를 통해 만들어 둔 df_item_code_name을

merge해서 만든 df에 자료가 입력되어 있지 않았습니다.

 

merge 당시 문제가 있었던 것으로 보였는데,

확인해보니 FinanceDataReader로 불러온 Name 컬럼의 종목명이 모두 영문으로 변경되어 있는 게

문제의 원인인 것 같습니다.

 

일단 KRX 정보데이터시스템 홈페이지로 들어가서 csv파일로 상장기업 종목명 및 종목코드를 다운로드해서,

선생님께서 알려주신대로 필요한 컬럼들만 추려내서 해당 데이터프레임과 raw를 다시 merge하니 작동하는 것 같네요.

 

혹시 FinanceDataReader를 이용해 원래대로 진행할 수 있는 방법이나,

좀더 효율적으로 종목명과 종목코드 정보를 수집하는 방법이 있을까요?

 

감사합니다:)

웹-크롤링 pandas python numpy plotly seaborn matplotlib 웹 스크래핑

답변 1

1

박조은

안녕하세요.

즐겁게 수강하고 있으시다니 감사합니다! 종목명이 영어로 나와서 많이 불편하셨을텐데 불편을 드려 죄송합니다.

해당 수업은 실시간으로 한국거래소에서 FinanceDataReader 라는 라이브러리를 통해 데이터를 받아오고 있습니다.

아래 링크에 있는 라이브러리의 소스코드가 KRX 전체 종목을 가져오는 소스코드입니다.

[FinanceDataReader/listing.py at master · FinanceData/FinanceDataReader](https://github.com/FinanceData/FinanceDataReader/blob/master/krx/listing.py)

이 때, 전체 상장종목과 거래할 수 있는 ETF 등의 종목도 함께 가져오게 되는데,

FinanceDataReader 에서는 코스피, 코스닥, 코넥스 정보가 있는 엑셀파일과 금융상품 정보가 있는 JSON 데이터를 가져와서 병합하는 형태로 데이터를 제공하고 있습니다.

그런데 최근 JSON 데이터의 종목명이 영문으로 변경되어 제공되고 있음을 확인했습니다.

그래서 아래의 엑셀 데이터를 read_html 로 읽어오게 되면 한글로 된 종목명을 받아서 분석해 보실 수 있습니다.

해당 내용은 좀 더 확인해 본 후에 수업에 업데이트 하겠습니다.

 

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)[0]
cols_ren = {'회사명':'Name', '종목코드':'Symbol', '업종':'Sector', '주요제품':'Industry', 
                    '상장일':'ListingDate', '결산월':'SettleMonth',  '대표자명':'Representative', 
                    '홈페이지':'HomePage', '지역':'Region', }
df = df_listing.rename(columns = cols_ren)
df['Symbol'] = df['Symbol'].apply(lambda x: '{:06d}'.format(x))
df['ListingDate'] = pd.to_datetime(df['ListingDate'])
df

 

감사합니다 :)

 

cufflinks 버전문제로 iplot() 미실행

0

46

2

[수정요청]직접 수집한 주가 데이터로 시각화해보기

0

55

2

pd.read_html(url, encoding='cp949') 에러

0

78

2

fdr.StockListing('KRX') 문제 발생

0

145

2

주식 자동매매 프로그램 제작 관련 조언 부탁드립니다

0

435

1

concat 을 통한 데이터 프레임 합치기 에러 문의

0

108

2

한글폰트 관련해서 문의드립니다.

0

235

2

데이터프레임 칼럼명 문의 드립니다.

0

239

3

금융데이터 수집의 모든것

0

146

2

녹화시점과 현재시점 컬럼명이 변경이 많이 되었을까요?

0

193

2

파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기 - 섹션1 [2/2]

0

176

1

Mac 환경에서 nbextensions 활성화 하는 방법

0

601

2

pd.concat(result.tolist()) 오류 문의

0

249

1

5.1 제약 데이터 수집 오류 해결

0

232

1

Table of contents 문의드립니다

0

216

2

concat을 통한 데이터프레임 합치기

0

552

2

Reindexing only valid with uniquely valued Index objects 오류 질문입니다.

0

495

1

데이터 비교시 데이터 불일치

0

414

1

dtype={"itemcode": np.object}) 을 dtype={"itemcode": object}) 으로 변경해야 하나요?

0

599

1

질문 : for문 풀어쓰기

0

493

1

파이참에서 Plotly 그래프 실행방법

0

1310

1

5.1 데이터프레임 병합(merge)

0

744

2

쥬피터노트북에서 실행파일 만들기

0

1452

1

주피터노트북 확장팩 설치가 안됩니다.

0

565

2