주식아빠, 좀버남의 주식 연구소

[주식-프로그래밍] 7. 파이썬 - 주식 전체종목 코드 가져오기 본문

코딩이야기/파이썬

[주식-프로그래밍] 7. 파이썬 - 주식 전체종목 코드 가져오기

좀버남 2020. 5. 30. 00:48

안녕하세요.

 

2020/05/26 - [코딩이야기/파이썬] - [주식-프로그래밍] 6. 파이썬 - 주식 전체종목 재무데이터 가져오기 - 세번째

 

[주식-프로그래밍] 6. 파이썬 - 주식 전체종목 재무데이터 가져오기 - 세번째

안녕하세요. 2020/05/26 - [코딩이야기/파이썬] - [주식-프로그래밍] 5. 파이썬 - 주식 전체종목 재무데이터 가져오기 - 두번째 [주식-프로그래밍] 5. 파이썬 - 주식 전체종목 재무데이터 가져오기 - 두�

kang-stock-coding.tistory.com

 

지난시간에 여러개 종목의 재무데이트를 합치기 까지 했었죠.

 

이번에, 상장되어 있는 모든 종목의 코드를 가져오도록 하겠습니다.

 

우선 지난 코드는 그대로 두고 새롭게 파일을 하나 만들겠습니다.

 

코드는 언제든지 합칠 수 있으니까요.

 

이제 코드를 하나씩 입력을 해야 겠죠.

 

import pandas as pd 

판다스 라이브러리를 사용하니, import하구요.

code_data = pd.read_html('http://kind.krx.co.kr/corpgeneral/corpList.do?method=download', header=0)[0]
code_data = code_data[['종목코드','회사명']]
print(code_data)

본문 코드에 위와 같이 3줄을 입력합니다.

한국거래소에서 종목코드를 다운받는 링크 이구요. 이 데이터를 df변수에 담습니다.

그리고 우리가 필요한 종목코드, 회사명만 남깁니다.

 

출력된 결과물은??

 

그런데, 앞선 FnGudide에서 종목코드를 불러올때는 'A005930' 와 같이 A + 6자리 코드로 되어 있는데, 출력된 결과물은 숫자만 나오고 앞자리가 00인경우는 표기가 안됩니다.

 

자 이제 함수를 하나 만들어 보겠습니다.

dataframe에 있는 종목코드를 받아와서 A를 넣고 6자리를 맞출수 있게 0을 넣어줘야 하죠.

def make_code(x):
    x=str(x)
    return 'A'+ '0'*(6-len(x)) + x

위와 같이 함수를 하나 만듭니다.

 

그리고, 이 함수를 실행시킬수 있도록 print문 앞, 본문에 코드를 하나 추가 합니다.

code_data['종목코드'] = code_data['종목코드'].apply(make_code)

위 코드를 추가하면 본문의 전체 코드는 아래와 같이 됩니다.

여기서 apply는 dataframe의 특정 칼럼 전체에 주어진 함수를 적용시키는 것을 의미합니다.

code_data = pd.read_html('http://kind.krx.co.kr/corpgeneral/corpList.do?method=download', header=0)[0]
code_data = code_data[['종목코드','회사명']]
code_data['종목코드'] = code_data['종목코드'].apply(make_code)
print(code_data)

 

자, 다시 한번 전체 코드를 한번 보겠습니다.

import pandas as pd

def make_code(x):
    x=str(x)
    return 'A'+ '0'*(6-len(x)) + x


code_data = pd.read_html('http://kind.krx.co.kr/corpgeneral/corpList.do?method=download', header=0)[0]
code_data = code_data[['종목코드','회사명']]
code_data['종목코드'] = code_data['종목코드'].apply(make_code)
print(code_data)

 

이것을 출력하면??

 

결과가 잘 나오는 것을 알수 있습니다.

 

감사합니다.