파이썬 마법의 공식 - 5. PER 가져오기
본문 바로가기
파이썬으로 만든 것들/마법의 공식

파이썬 마법의 공식 - 5. PER 가져오기

by Squat Lee 2022. 7. 13.

2022.06.28 - [집구석 강의/파이썬으로 마법의 공식 구현하기] - 파이썬 마법의 공식 - 4. 모든 종목번호, 종목명 가져오기

 

파이썬 마법의 공식 - 4. 모든 종목번호, 종목명 가져오기

조엘 그린블란트의 마법의 공식을 구현하기 위해서는 우선 주식시장에 상장된 전체 종목을 가져와야 합니다. 여러가지 방법이 있겠지만, 저는 KRX에서 전체 종목을 가져오도록 하겠습니다. 다행

dotsnlines.tistory.com

 

지난 포스트에는 pykrx 라이브러리를 사용해서 상장된 모든 종목을 가져왔습니다.

 

이번 포스트는 per을 가져와서 정리해 보도록 하겠습니다.

 


전체 종목 리스트는 pykrx 모듈을 이용해서 가져왔습니다.

 

PER도 pykrx를 사용해서 가져오겠습니다. 가져온 데이터를 테이블 형식으로 만들기 위해 pandas 라이브러리를 추가적으로 가져옵니다.

 

※ "import pandas as pd" 에서 as는 가져오는 라이브러리를 'pd' 즉 짧게 줄여서 쓰기 위해서 사용합니다. 'pd' 말고라도 본인이 편하게 아무렇게나 만들어 사용하시면 됩니다. 단, 다른 라이브러리와 중복되면 안 됩니다.

 

지난번 포스트에서 종목코드를 가져올 때 "stock.get_market_tikcer_list('20220706',  market='ALL')" 이런식으로 사용했습니다. 

 

이번에는 date를 변수로 만들어서 '20220706' 날짜를 넣어 주겠습니다.(여러번 사용해야 하기 때문에 변수로 만들었습니다.)

 

지난번에 작성한 코드에서 date 변수만 별도로 만들어서 실행해 보겠습니다.

정상적으로 작동하는 모습을 볼 수 있습니다.

 

이제, 가져온 ['종목코드', '종목명'] 리스트를 데이터프레임 형태로 만들어 보겠습니다. 데이터프레임이란 테이블(표) 형식이라 생각하시면 됩니다.

"pd.DataFrame" 함수에 데이터는 이미 만든 'corp' 리스트를 넣어 주면 되고, 컬럼은 '종목코드', '종목명'으로 설정해 줍니다. 실행시켜 보겠습니다.

테이블 형태로 이쁘게 출력이 되었습니다.

 

왼쪽열에 0,1,2... 이렇게 보이는 숫자는 index라고 합니다. 데이터프레임을 만들때 자동으로 만들어집니다. 

 

우리는 종목코드를 index로 바꿔보도록 하겠습니다. 왜냐하면, PER을 가져와서 종목코드로 데이터프레임을 합쳐야 하기 때문입니다.

 

df.set_index('종목코드') 함수를 사용해서 이미 만든 'df'를 재설정 해 줍니다.

 

프린트를 해서 바뀐 'df'모양을 확인해 보겠습니다.

 

맨 왼쪽에 숫자가 사라지고, 종목코드가 index로 대체 된 것을 확인할 수 있습니다.

 

이제 PER을 가져와 보도록 하겠습니다.

 

"stock.get_merket_fundamental_by_ticker'라는 함수를 사용하면 'PER'을 가져올 수 있습니다. 여기에도 날짜가 인자로 들어가기에 맨 처음 날짜를 변수로 빼버린 것입니다. 프린트를 해서 결과를 확인해 보도록 하겠습니다.

PER 뿐만 아니라 PBR, EPS, DIV, DPS 모두 가져올 수 있네요. DIV는 배당률이고, DPS는 주당 배당금액입니다.

 

이제 처음 만들었던 df 즉 '종목코드', '종목명'을 방금 가져온 펀더멘털 데이터프레임과 합쳐 보도록 하겠습니다.

 

pd.merge 라는 함수를 사용하면 됩니다. 합칠 데이터프레임을 인자로 넣어주시고, 왼쪽, 오른쪽 인덱스로 합친다고 "True"를 옵션으로 지정해줍니다.

 

제대로 결과가 나왔습니다. 

 

이제, 여태껏 만든 코드를 함수로 만들어 보겠습니다. 함수로 만들면 다른 코드에 적용할 때 함수 코드 한 줄만 사용하면 되기 때문에 상당히 편리합니다.

 

 미리 만든 코드를 'Tab'키를 사용해서 오른쪽으로 이동해주고 "def per(date):"를 입력해 줍니다.

 

함수를 만드는 규칙인데, 'def'는 함수를 정의한다는 얘기고, "함수이름(parameter):" 이런 형태로 입력해주면 됩니다.

 

결과가 제대로 나온 것을 확인 할 수 있습니다.

 

다음 포스트는 "ROA"를 가져와 보도록 하겠습니다.

 

2022.07.25 - [집구석 강의/파이썬으로 마법의 공식 구현하기] - 파이썬 마법의 공식 - 6. ROA 가져오기

 

파이썬 마법의 공식 - 6. ROA 가져오기

지난번까지 전체 종목을 가져와서 PER까지 가져오는 방법을 알아보았습니다. 지난번 포스트는 아래 링크를 참고하세요. 2022.07.13 - [집구석 강의/파이썬으로 마법의 공식 구현하기] - 파이썬 마법

dotsnlines.tistory.com

 

728x90
반응형

댓글