본문 바로가기

About 배우고 익히는법/Python

상장사 재무제표 수집 -pandas.read_html

코딩을 제대로 배우지 않았거나 문과 출신의 일반 직장인들이 쉽게 배울 수 있는 파이썬(Python) 데이터분석툴 활용법 교육을 내용으로 블로깅을 시작해보려고 했는데요. 저 또한 코딩 초보인지라 좌충우돌하면서 직접 코딩을 공부하고 실전 예제를 다뤄보느라 블로그를 체계적으로 만들 정신이 없었던 것 같아요. 
 
다시 한번 심기일전해서, 직장인에게 필요한 코딩 예제 위주로 주제를 잡아서 집중해서 블로그 컨텐츠를 만들어 보려고 합니다오늘은 일반 기획 담당자들이라면 자주 하는 일인데요. 상장사 재무제표 데이터를 수집하는 작업을 파이썬을 활용해서 자동화하는 코딩 예제를 소개합니다. 
 

초보의, 초보에 의한, 초보를 위한 파이썬 코딩!

 
복잡한 코딩은 피하겠습니다. 간단하게 따라하면서 바로 업무에 적용할 수 있는 알고리즘을 찾아서 소개하겠습니다. 포기하지 마시고 직접 따라하시다보면 파이썬 언어도 자연스럽게 이해가 될 수 있도록 말이죠. 
 

 오늘의 주제로 들어가겠습니다. 
상장기업의 재무제표 수집 업무 자동화입니다.

 
Step 1: 데이터를 수집할 소스를 정한다.
 
이번 예제에서는 KISLINE(http://media.kisline.com/highlight/mainHighlight.nice?nav=1&paper_stock=005930) 사이트에서 삼성전자(005930)의 재무정보를 가져와 보겠습니다. url 마지막 부분에 "paper_stock=005930"에서 숫자 6자리가 주식종목코드입니다. 이 부분을 바꿔주면 원하는 상장회사의 재무정보가 있는 KISLINE 웹페이지를 호출할 수 있습니다. 

KISLINE 페이지


 
Step 2: 데이터 수집을 위한 코드를 작성한다.
 
코드는 5줄로 만들었습니다. 상당히 간단하죠?^^ pandas 라이브러리와 dataframe을 설명하고 이해하려면 상당히 많은 시간이 필요하지만, 직장인들이 업무에 적용할 때는 엑셀의 내장함수를 사용하 듯 그냥 따라하는 것도 괜찮다고 생각합니다. 일단 업무에 적용하고, 세세한 작동원리와 이론에 대해서는 차근차근 보충해 나가는 방법을 권장합니다. 이런 게 실사구시의 정신 아닐까요? ^^
 
import pandas as pd

url = "http://media.kisline.com/highlight/mainHighlight.nice?nav=1&paper_stock=005930"
tables = pd.read_html(url)

df = tables[4] 
df.to_excel("data_005930.xlsx")
 
 
Step 3: 데이터를 원하는 형태로 정리한다. 
 
저장된 엑셀 파일을 열어서 확인해 보면, 불필요한 셀들이 있는데요. 이런 부분을 제거해서 필요한 부분만 남기는 것을 데이터 클린징이라고 부릅니다. 이 부분도 자동화할 수 있지만, 난이도가 꽤 있는 작업이라서 오늘은 다루지 않겠습니다. 

저는 아래와 같이 불필요한 셀을 삭제해서 정리하였습니다. 각자 필요한 양식으로 만들어서 사용하시면 되겠습니다.