주가 데이터 처리 - 종목명 / 종목코드(Ticker) 매칭하기
이번 방학 동안 주가 데이터 만져보면서 데이터 분석도 해보고,
주워모은 정보들로 괜찮은 인사이트를 얻어낼 수 있다면 수익 창출도 기대해볼까 했는데,
예상 밖의 사정으로 자본이 전혀 없어 사실 투자 불가능한 상태이다.
하지만 데이터 분석은 놓칠 수 없었다.
종목코드와 종목명을 매칭 시킨 리스트는 주가 데이터 전처리 할 때 꼭 필요하다.
https://www.youtube.com/watch?v=cgqzyoKmweo
유튜브 '위대한 개스피' 채널의 '종목코드 6자리 파이썬으로 한번에 정리' 영상을 참고하여
리스트 묶음을 csv형식으로 저장해보려 한다.
본 포스팅은 따라해보며 공부하는 목적이므로 관심있으시면 위 영상 보시는게 훨씬 유익할 게 분명하다.
http://data.krx.co.kr/contents/MDC/MDI/mdiLoader/index.cmd?menuId=MDC0201020501
KRX 정보데이터시스템
증권·파생상품의 시장정보(Marketdata), 공매도정보, 투자분석정보(SMILE) 등 한국거래소의 정보데이터를 통합하여 제공 서비스
data.krx.co.kr
종목코드 데이터를 불러오는 방법은 다양하겠지만 위 영상을 참고하였고,
정보데이터시스템 홈페이지에서 상장회사 상세검색을 하면
상장된 모든 회사의 종목코드, 종목명, 업종명 등의 정보가 담긴 엑셀 혹은 csv 파일을 다운 받을 수 있다.
다운 받아서 실습 파일과 같은 경로에 저장해주었다.
import pandas as pd
file_path = 'data_5806_20220111.csv'
data = pd.read_csv(file_path, encoding='cp949')
data
데이터프레임 형식으로 불러오면 위 그림과 같이 생겼다는 걸 볼 수 있다.
필요한 정보만 저장해주었다.
위 데이터를 보면 전처리 과정이 필요한데
국내 주식 종목코드는 원래 여섯 자리이며,
첫 번째 행의 경우 '60610'이 아니라 '060310'이 정확한 종목코드이므로
이를 아래 반복문을 통해 수정해주었다.
for i in range(len(data["종목코드"])):
data["종목코드"].iloc[i] = (6-len(str(data["종목코드"][i])))*"0" + str(data["종목코드"][i])
위 코드는 영상에서 제시한 코드와 다르며
복사본 경고문이 시뻘겋게 뜬다.
크게 중요하지 않은 것 같아서 무시하고 출력해보았다.
의도한대로 수정된 것을 확인할 수 있다.
이건 영상 따라 contains 메소드로 조건 설정하여 삼성 계열사 종목만 따로 추출한 것.
경우에 따라 유용하게 사용할 수 있다.
예를 들어 특정 업종별 카테고리만 추출한다던가.
앞으로 더 공부해보면서 상황에 맞게 활용해보겠다.