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

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

코딩이야기/파이썬

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

좀버남 2020. 5. 26. 00:23

안녕하세요.

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

 

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

안녕하세요. 2020/05/24 - [코딩이야기/파이썬] - [주식-프로그래밍] 3. 파이썬 크롤링 - 재무데이터 가져오기 [주식-프로그래밍] 3. 파이썬 크롤링 - 재무데이터 가져오기 안녕하세요. 이제 주식과 파�

kang-stock-coding.tistory.com

이전에 종목들의 재무데이터를 불러오는 코드를 공부 해 보았는데요.

 

이번엔 재무데이터중에서 나에게 필요한 데이터만 뽑아내는 방법을 공부해보겠습니다.

 

셀트리온(A068270) 재무데이터표

위 표에서 행으로는 '매출액' '영업이익' 당기순이익'을 남기고 열로는 연도별 데이터만 남기도록 하겠습니다.

 

이전 글에서 작성된 아래 출력 코드에서 fs_data(code)란 함수를 통해서 table을 가져왔는데요.

print( tabulate(fs_data(code), headers='keys', tablefmt='psql') )

 

이 Table을 for반복문 안에서 새롭게 변수로 지정을 합니다.

dataframe=fs_data(code)

dataframe=dataframe.set_index('IFRS(연결)')

dataframe=dataframe[['2017/12','2018/12','2019/12','2020/03']]

dataframe=dataframe.loc[['매출액','영업이익','당기순이익']]

print( tabulate(dataframe, headers='keys', tablefmt='psql') )  

위와 같이 코드를 변경해 줍니다.

 

코드 하나하나 보겠습니다.

dataframe=dataframe.set_index('IFRS(연결)')

- 기존Table의 앞에 index열은 0~17로표기가 됩니다. 이를 변경해주는 코드입니다. (타이틀로)

 

dataframe=dataframe[['2017/12','2018/12','2019/12','2020/03']]

- 열의 남겨둘 값만 설정을 합니다. 향후 본 코드는 변경될 것입니다. 왜냐하면, 시간이 지남에 따라, 지정한 고정값이 아니기 때문이죠. 만약 2분기 실적을 발표했다? 그러면 마지막 열의 값은 '2020/06'이 될것이기 때문입니다.

 

dataframe=dataframe.loc[['매출액','영업이익','당기순이익']]

- .loc 이 문구가 필요한 행만 표시하는 문구 입니다.

 

print( tabulate(dataframe, headers='keys', tablefmt='psql') )  

- 출력함수죠. 변경사항은 무엇을 출력할지만 변경되었죠.

 

이렇게 코드를 수정하고 실행은 하면??

 

필요한 값만 잘 남아 있는것을 확인 할 수 있습니다.

 

향후 행 혹은 열의 날짜나 값이 변한는것에 대하여 대응 하기 위해 code를 조금 수정해줍니다.

dataframe=dataframe.set_index('IFRS(연결)')

→ dataframe=dataframe.set_index(dataframe.columns[0])

 

 

dataframe=dataframe[['2017/12','2018/12','2019/12','2020/03']]

→ dataframe=dataframe[dataframe.columns[:4]]

 

 

위와 같이 2줄의 코드를 수정합니다.

특정 종목에서는 'IFRS(연결)'로 표기가 안되는 경우가 있습니다. 그렇기에 컬럼0번을 가져오는 것이구요

년도 및 월실적이 변경 될때마다 값이 변경되어야 하므로 그냥 표의 절대 열정보를 가져오도록 합니다.

 


이어서 이 데이터를 파일로 출력을 해야하는데요.

각 종목별로 파일을 출력하면 한눈에 볼 수가 없습니다.

 

아래와 같이 모든 종목을 한눈에 보려면 각 열로 데이터가 다 뿌려져야 하죠.

위 엑셀파일은 VBA를 통해 만들었던 데이터 입니다.

 

시간 관계상 다음 시간에 뵙도록 하겠습니다.

 

현재까지 작성된 전체 코드는 아래와 같습니다.

 

감사합니다.