데이터사이언스/금융데이터분석

주가 데이터 처리 - 종목명 / 종목코드(Ticker) 매칭하기

누군가의 이야기 2022. 1. 12. 00:33
728x90

이번 방학 동안 주가 데이터 만져보면서 데이터 분석도 해보고,

주워모은 정보들로 괜찮은 인사이트를 얻어낼 수 있다면 수익 창출도 기대해볼까 했는데,

예상 밖의 사정으로 자본이 전혀 없어 사실 투자 불가능한 상태이다.

하지만 데이터 분석은 놓칠 수 없었다.

 

종목코드와 종목명을 매칭 시킨 리스트는 주가 데이터 전처리 할 때 꼭 필요하다. 

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 메소드로 조건 설정하여 삼성 계열사 종목만 따로 추출한 것.

경우에 따라 유용하게 사용할 수 있다.

예를 들어 특정 업종별 카테고리만 추출한다던가.

앞으로 더 공부해보면서 상황에 맞게 활용해보겠다.

 

 

728x90