웬디의 기묘한 이야기

글 작성자: WENDYS
반응형

주식 거래를 할 때 회사들을 일련의 코드로써 나열을 하게 됩니다. 그렇다면 주식의 정보를 가져오기 위해서는 코스피(KOSPI)와 코스닥(KOSDAQ)의 종목 코드 목록을 알아야 하는데요, 3000여 개나 되는 코드를 하나하나 찾는 건 개발자 스타일이 아니니 공식 데이터를 제공하는 한국 거래소 (KRX)를 통해 가져오도록 하겠습니다.

한국 거래소에서는 상장법인목록을 엑셀 파일로 다운로드할 수 있게 제공이 되기 때문에 한결 수월하네요

 

 

그렇다면 가장 먼저 pandas가 설치되어있어야겠죠?

저는 구글 콜라보레이터를 이용하여 테스트를 해볼 계획입니다. 구글 콜라보 레이터에는 기본적인 외부 모듈들이 설치되어있기 때문에 그냥 사용하면 되지만 만약 설치가 필요한 경우 pandas를 설치 후 작업을 진행하면 되겠습니다.

# pandas 설치하기
pip install pandas
import pandas as pd

# excel 파일을 다운로드하는거와 동시에 pandas에 load하기
# 흔히 사용하는 df라는 변수는 data frame을 의미합니다.
df = pd.read_html('http://kind.krx.co.kr/corpgeneral/corpList.do?method=download', header=0)[0]

해당 링크는 한국거래소에서 상장법인목록을 엑셀로 다운로드하는 링크입니다.

다운로드와 동시에 Pandas에 excel 파일이 load가 되는 구조입니다. c++ 개발자인 저로써는 정말 신세계입니다..

 

Pandas를 이용하면 너무나도 간단합니다.

Pandas는 Python의 대표적인 데이터 분석 툴로써 데이터 조작 및 분석을 위한 막강한 기능들을 제공합니다.

주로 데이터 프레임 형태의 기계 학습에 많이 사용되며, Pandas는 csv, excel 등과 같은 다양한 파일 형식의 데이터를 가져올 수 있습니다. 또한 groupby, join, merge, melt, concatenation과 같은 다양한 데이터 조작 작업뿐만 아니라 null값 채우기, 바꾸기 또는 대치와 같은 데이터 정리 기능을 허용합니다.

 

그럼 데이터가 어떻게 들어가있는지 한번 확인해볼까요??

 

df.head()

df.head()를 호출하게되면 5개의 데이터를 확인할 수 있음

df.head()를 입력하니 상위 5개의 데이터가 보이네요 만약 더 많은 데이터를 보고 싶은 경우 df.head(10) 등 보고싶은 만큼의 개수를 입력하면 되며, 만약 마지막 데이터를 확인하고 싶은 경우 df.tail()을 입력하면 데이터를 확인할 수 있습니다.

 

df.tail()

 

해당 데이터에서 정렬이 따로 필요하지는 않지만 테스트겸 Pandas sort_values를 이용하여 정렬을 시도해봅니다.

# pandas data frame을 '상장일' 기준으로 정렬 (ascending=[True], [False]로 오름차순, 내림차순 정렬)
df = df.sort_values(['상장일'], ascending=[True])

df.head()

상장일 순으로 데이터가 정렬된 모습

 

하지만 불필요한 데이터가 아주 많습니다.

제가 필요한 데이터는 '회사명'과 '종목코드'정도 되는것같네요

그렇다면 딱 필요한 정보만 사용할 수 있도록 data frame을 조금 정리해보도록 하겠습니다.

 

df = df[['회사명', '종목코드']]

df.head()

 

필요한 정보만을 가지도록 데이터 정리

 

위의 테이블 Title인 '회사명', '종목코드' 도 간단하게 변경이 가능합니다.

df = df.rename(columns={'회사명': 'name', '종목코드': 'code'})

df.head()

 

 

너무나도 간단한 방법으로 3800여 개나 되는 데이터를 회사명과 종목코드로 정리했습니다.

앞으로 해당 데이터를 이용하여 주식 정보를 획득하는 등 다양한 활용에 사용해볼 계획입니다.

 

pandas_datareader를 이용하여 주식 데이터 가져오기!

https://wendys.tistory.com/174

 

[Python] pandas_datareader를 이용하여 주식 데이터 가져오기! Yahoo Finance

저번 시간에 pandas를 이용하여 한국 거래소(KRX)의 주식 종목 코드를 가져왔었는데요, 이번에는 코스피(KOSPI), 코스닥(KODAQ) 주식 종목 코드를 이용하여 원하는 회사의 주식 정보를 가져와보려 합니다. https:..

wendys.tistory.com

 

반응형