[python] OpenDartReader로 재무정보 조회하기 - (2)배당정보 조회

02_OpenDartReader_배당정보

OpenDartReader로 재무정보 조회하기 - (2)배당정보 조회

In [1]:
import OpenDartReader
import pandas as pd
api_key = '발급받은 api key'
dart = OpenDartReader(api_key)

1. 배당정보 조회

  • 사업보고서 주요정보를 조회하는 report() 메소드 사용

  • dart.report(corp, key_word, bsns_year, reprt_code='11011')

  • key_word에 '증자','배당','자기주식','최대주주','최대주주변동','소액주주','임원','직원','임원개인보수','임원전체보수','개인별보수','타법인출자' 중의 하나를 지정할 수 있음

In [2]:
# 삼성전자의 2019년 배당관련 사항 조회
dart.report(corp='005930', key_word='배당', bsns_year=2019)
Out[2]:
rcept_no corp_cls corp_code corp_name se thstrm frmtrm lwfr stock_knd
0 20200330003851 Y 00126380 삼성전자 주당액면가액(원) 100 100 100 NaN
1 20200330003851 Y 00126380 삼성전자 (연결)당기순이익(백만원) 21,505,054 43,890,877 41,344,569 NaN
2 20200330003851 Y 00126380 삼성전자 (별도)당기순이익(백만원) 15,353,323 32,815,127 28,800,837 NaN
3 20200330003851 Y 00126380 삼성전자 (연결)주당순이익(원) 3,166 6,461 5,997 NaN
4 20200330003851 Y 00126380 삼성전자 현금배당금총액(백만원) 9,619,243 9,619,243 5,826,302 NaN
5 20200330003851 Y 00126380 삼성전자 주식배당금총액(백만원) - - - NaN
6 20200330003851 Y 00126380 삼성전자 (연결)현금배당성향(%) 44.70 21.90 14.10 NaN
7 20200330003851 Y 00126380 삼성전자 현금배당수익률(%) 2.60 3.70 1.70 보통주
8 20200330003851 Y 00126380 삼성전자 현금배당수익률(%) 3.10 4.50 2.10 우선주
9 20200330003851 Y 00126380 삼성전자 주식배당수익률(%) - - - 보통주
10 20200330003851 Y 00126380 삼성전자 주식배당수익률(%) - - - 우선주
11 20200330003851 Y 00126380 삼성전자 주당 현금배당금(원) 1,416 1,416 850 보통주
12 20200330003851 Y 00126380 삼성전자 주당 현금배당금(원) 1,417 1,417 851 우선주
13 20200330003851 Y 00126380 삼성전자 주당 주식배당(주) - - - 보통주
14 20200330003851 Y 00126380 삼성전자 주당 주식배당(주) - - - 우선주

2. DPS/EPS/배당수익률/배당총액 조회

  • 'se' 칼럼에서 원하는 정보를 찾은 후 'thstrm'칼럼의 값(당기 정보)을 가져오면 된다.
In [3]:
dv = dart.report(corp='005930', key_word='배당', bsns_year=2019)

dv_dps   = dv[dv['se'] == '주당 현금배당금(원)']
dv_eps   = dv[dv['se'].str.contains('주당순이익')]
dv_yield = dv[dv['se'].str.contains('현금배당수익률')]
dv_TD    = dv[dv['se'].str.contains('현금배당금총액')]

EPS = int(dv_eps[['thstrm']].iloc[0,0].replace(',','').strip()) # 주당순이익
DPS = int(dv_dps[['thstrm']].iloc[0,0].replace(',', '').strip()) # 주당 배당금
Yield = float(dv_yield[['thstrm']].iloc[0,0].replace(',','').strip())
TD = int(dv_TD[['thstrm']].iloc[0,0].replace(',', '').strip()) * 1000000 # 배당금총액. 백만원단위
In [6]:
pd.DataFrame({'종목코드':['005930'], '종목명':['삼성전자'], 
              'EPS':[EPS], 'DPS':[DPS], '배당수익률':[Yield], '배당금총액':[TD]})
Out[6]:
종목코드 종목명 EPS DPS 배당수익률 배당금총액
0 005930 삼성전자 3166 1416 2.6 9619243000000