본문 바로가기
파이썬/주식

Python으로 종목코드(코스피/코스닥) 엑셀로 저장/읽기

by 행복론자 2019. 11. 17.

Python, Pandas를 이용해서 코스피, 코스닥에 상장된 기업 코드를 가져와 Excel로 저장/읽기가 가능한 코드를 첨부하겠습니다.

 

그 전에 선행작업으로는 pandas와 openpyxl, xlrd가 모두 설치되어 있어야 합니다. 

 

import pandas as pd

df = pd.read_html('http://kind.krx.co.kr/corpgeneral/corpList.do?method=download&searchType=13', header=0)[0]

df.종목코드 = df.종목코드.map('{:06d}'.format) #6자리로 맞추기 

#df에 속한 column 목록 Index(['회사명', '종목코드', '업종', '주요제품', '상장일', '결산월', '대표자명', '홈페이지', '지역'], dtype='object')

df = df[['회사명', '종목코드', '상장일' , '업종', '주요제품']] # 필요한 column만 추출하기

df.to_excel('codes.xlsx') #엑셀로 저장

 

실행하고 나면 해당 경로에 'codes.xlsx'이란 파일이 생기고 열어보면 다음과 같이 생겼습니다.

codes.xlsx의 모습, 전체는 2300개 정도 됩니다.

 

> 하지만 자료를 받아온 한국거래소 

https://kind.krx.co.kr/corpgeneral/corpList.do?method=loadInitPage

 

에 접속하면 유가증권(코스피), 코스닥 상장을 구분해서 엑셀로 받을 수 있는 편리한 기능이 이미 있습니다. 

 

Pandas를 통해 데이터를 받아오고 이를 to_excel을 통해 쉽게 xlsx 파일로 만들 수 있다는 점만 알아두면 좋을 것 같습니다. 

 

이후에는 이를 다시 읽어서 약간의 변화를 준 뒤 다시 저장해보겠습니다. 

import pandas as pd

df = pd.read_excel('codes.xlsx') #아까 저장했던 codes.xlsx을 읽어옵니다. 
df = df.sort_values(by=['상장일'], ascending=[False]) #column 중 '상장일'을 기준으로 정렬합니다. 
df = df.reset_index(drop=True) #rest_index를 하면 기존의 있던 index를 가지고 있는데 굳이 그럴 필요가 없으므로 drop=True 옵션을 넣어줍니다. 
df.종목코드 = df.종목코드.map('{:06d}'.format) #엑셀에서 읽어온 종목코드를 6자리로 다시 세팅해줍니다.

df['회사_코드']= df['회사명'] + df['종목코드'] #새로운 column인 '회사_코드'를 추가합니다. 회사_코드는 회사명 + 종목코드를 의미합니다. 
print(df.head())
df.to_excel('codes.xlsx', sheet_name="Sheet1") #sheet_name은 Default로 Sheet1이지만 굳이 다시 지정해서 전달해줘봅니다. 

read_excel을 통해 읽은 DataFrame을 상장일을 기준으로 정렬하고 새로운 컬럼을 추가한 뒤 다시 to_excel을 통해 저장했습니다. 이 codes.xlsx을 읽어보면 새로운 컬럼이 추가되고 정렬된 것을 알 수 있습니다.

 

 

 

다음은 Naver finance에서 종목별로 재무정보를 얻어 오는 방법을 포스팅해보겠습니다. 

 

** 제 블로그에 와주셔서 감사합니다.
재밌게 보셨다면 좋아요, 댓글은 저에게 큰 힘이 됩니다! 
감사합니다!

 

반응형
이 포스팅은 쿠팡파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

댓글