재무제표는 기업 재무상태나 경영성과 등을 보여주는 문서입니다. 이러한 재무제표는 기업의 성과 등을 파악하기 위해 내부적인 목적으로 사용되기도 하나, 상장기업의 경우 상법상 재무제표를 작성하고 비치해야 하는 의무가 있습니다.

기업 공개에 따라 투자자를 유치하기 때문에 기업 회계의 투명성을 공시하는 것은 투자자에 대한 당연한 의무라고 봅니다. 재무제표의 확인은 우리가 마트에서 먹을 것을 사더라도 트랜스 지방, 칼로리, 가격, 성분, 유통기한 확인하는 것과 같이 필수적이지만 손이 잘 안가는 것이 사실입니다. 아무래도 상품에 적혀 있는 기본 정보와 달리 정보 접근성이 떨어지기 때문인 것 같습니다. 보는 법이야 자주 보다보면 알 수 있고, 용어야 인터넷 잠깐만 검색해보면 엄청나게 쏟아지지만 결국은 정보의 접근성이 문제인 것 같습니다.

fnguide라는 사이트를 통해 무료로 재무제표를 확인할 수 있습니다. 유료 회윈의 경우 FnResearch(300,000/월), FnConsensus(100,000/월), FnOwnership(100,000/월), FnDB Navigator(100,000/월), FnScreener(100,000/월), FnEMIS(300,000/월), FnDocument(100,000/월)등의 자료를 받아볼 수 있나봅니다.

 

재무제표에 쉽게 접근할 수 있는 Python 코드를 아래와 구현해봤습니다.

 

import pandas as pd
import requests
import time

def make_fs_dataframe(firm_code) :
    fs_url = "http://comp.fnguide.com/SVO2/ASP/SVD_Finance.asp?pGB=1&cID=&MenuYn=Y&ReportGB=&NewMenuID=103&stkGb=701&gicode=" + firm_code
    fs_page = requests.get(fs_url)
    fs_tables = pd.read_html(fs_page.text)

    temp_df1 = fs_tables[0]
    temp_df1 = temp_df1.set_index(temp_df1.columns[0])
    temp_df1 = temp_df1[temp_df1.columns[0:4]]
    temp_df1 = temp_df1.loc[['매출액', '영업이익', '당기순이익']]

    temp_df2 = fs_tables[2]
    temp_df2 = temp_df2.set_index(temp_df2.columns[0])
    temp_df2 = temp_df2.loc[['자산', '부채', '자본']]

    temp_df3 = fs_tables[4]
    temp_df3 = temp_df3.set_index(temp_df3.columns[0])
    temp_df3 = temp_df3.loc[['영업활동으로인한현금흐름']]

    fs_df = pd.concat([temp_df1, temp_df2, temp_df3])
    return fs_df

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

temp_df2 = temp_df2.loc[['자산', '부채', '자본']]

temp_df3 = temp_df3.loc[['영업활동으로인한현금흐름']]

관심있는 항목을 추가하여 코드를 구현할 수 있습니다.

 

def make_fr_dataframe(firm_code) :
    fr_url = 'http://comp.fnguide.com/SVO2/ASP/SVD_FinanceRatio.asp?pGB=1&cID=&MenuYn=Y&ReportGB=&NewMenuID=104&stkGb=701&gicode=' + firm_code
    fr_page = requests.get(fr_url)
    fr_tables = pd.read_html(fr_page.text)

    temp_df = fr_tables[0]
    temp_df = temp_df.set_index(temp_df.columns[0])
    temp_df = temp_df.loc[['유동비율계산에 참여한 계정 펼치기', '부채비율계산에 참여한 계정 펼치기', '영업이익률계산에 참여한 계정 펼치기',
                           'ROA계산에 참여한 계정 펼치기', 'ROIC계산에 참여한 계정 펼치기']]
    temp_df.index = ['유동비율', '부채비율', '영업이익률', 'ROA', 'ROIC']
    return temp_df

추가로 투자지표도 확인할 수 있습니다.

참고가 되셨으면 좋겠습니다.

'파이썬(PYTHON)' 카테고리의 다른 글

fbprophet 설치 오류 해결  (0) 2021.10.01
SELENIUM을 이용한 KRX 주식 종목 코드 크롤링  (0) 2021.09.20
RPA를 위한 Python 활용  (0) 2021.08.21
Demark 지표의 Python 코드 구현  (2) 2021.08.19
TALIB Library 모듈  (0) 2021.07.01

+ Recent posts