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'이란 파일이 생기고 열어보면 다음과 같이 생겼습니다.
> 하지만 자료를 받아온 한국거래소
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에서 종목별로 재무정보를 얻어 오는 방법을 포스팅해보겠습니다.
** 제 블로그에 와주셔서 감사합니다.
재밌게 보셨다면 좋아요, 댓글은 저에게 큰 힘이 됩니다!
감사합니다!
반응형
'파이썬 > 주식' 카테고리의 다른 글
Python, multiprocessing으로 좀 더 빠른 Naver Finance 크롤러 만들기 / multiprocessing crawling (0) | 2019.11.27 |
---|---|
Python, BeautifulSoup4으로 Naver Finance 정보 크롤링 네이버 기업실적 크롤링 (1) | 2019.11.24 |
Python으로 보조지표 MACD 구하기 MACD Oscillator 구하기 (0) | 2019.11.10 |
Python으로 RSI(Relative Strength Index) 구하기 (8) | 2019.11.06 |
Python으로 볼린저밴드 Bollinger Bands 보조지표 계산 (2) | 2019.11.03 |
댓글