XBRL 데이터 추출
XBRL 파일 데이터 분석
DartXbrl 클래스
- class dart_fss.xbrl.dart_xbrl.DartXbrl(filename: str, xbrl: <module 'arelle.ModelXbrl' from '/home/docs/checkouts/readthedocs.org/user_builds/dart-fss/envs/develop/lib/python3.10/site-packages/arelle/ModelXbrl.py'>)[source]
XBRL 문서
회사(종목)의 XBRL 문서를 기반으로 회계정보를 가지고 있는 클래스
- Attributes:
- filename: str
로드한 파일 이름
- xbrl: ModelXbrl
arelle Xbrl 클래스
Methods
연결 재무제표 존재 여부를 확인하기 위한 함수
get_audit_information
([lang])감사 정보
get_author_information
([lang])작성자 정보
get_cash_flows
(Statement of cash flow)현금흐름표(Statement of cash flow)
자본변동표(Statement of changes in equity )
get_document_information
([lang])공시 문서 정보
get_entity_address_information
([lang])주소 정보
get_entity_information
([lang])공시 대상 정보
재무상태표(Statement of financial position)
재무제표 정보
get_income_statement
(...)포괄손익계산서(Statement of comprehensive income)
get_period_information
([lang])공시 문서 기간 정보
get_table_by_code
(code)Table 코드와 일치하는 Table 반환
get_table_by_name
(name[, separate])Table 이름과 일치하는 Table 리스트 반환
- exist_consolidated()[source]
연결 재무제표 존재 여부를 확인하기 위한 함수
- Returns:
- bool
연결재무제표 존재시 True / 개별재무제표만 존재시 False
- get_audit_information(lang: str = 'ko') DataFrame [source]
감사 정보
- Parameters:
- lang: str
표시 언어 설정(‘ko’: 한글, ‘en’: 영어)
- Returns:
- DataFrame
감사 정보
- get_author_information(lang: str = 'ko') DataFrame [source]
작성자 정보
- Parameters:
- lang: str
표시 언어 설정(‘ko’: 한글, ‘en’: 영어)
- Returns:
- DataFrame
작성자 정보
- get_cash_flows(Statement of cash flow)[source]
현금흐름표(Statement of cash flow)
- Parameters:
- separate: bool, optional
개별(True) / 연결(False, 기본)
- Returns:
- list of Table
현금흐름표 리스트
- get_changes_in_equity(Statement of changes in equity)[source]
자본변동표(Statement of changes in equity )
- Parameters:
- separate: bool, optional
개별(True) / 연결(False, 기본)
- Returns:
- list of Table
자본변동표 리스트
- get_document_information(lang: str = 'ko') DataFrame [source]
공시 문서 정보
- Parameters:
- lang: str
표시 언어 설정(‘ko’: 한글, ‘en’: 영어)
- Returns:
- DataFrame
공시 문서 정보
- get_entity_address_information(lang: str = 'ko') DataFrame [source]
주소 정보
- Parameters:
- lang: str
표시 언어 설정(‘ko’: 한글, ‘en’: 영어)
- Returns:
- DataFrame
주소 정보
- get_entity_information(lang: str = 'ko') DataFrame [source]
공시 대상 정보
- Parameters:
- lang: str
표시 언어 설정(‘ko’: 한글, ‘en’: 영어)
- Returns:
- DataFrame
공시 대상 정보
- get_financial_statement(Statement of financial position)[source]
재무상태표(Statement of financial position)
- Parameters:
- separate: bool, optional
개별(True) / 연결(False, 기본)
- Returns:
- list of Table
재무상태표 리스트
- get_financial_statement_information(lang: str = 'ko') DataFrame [source]
재무제표 정보
- Parameters:
- lang: str
표시 언어 설정(‘ko’: 한글, ‘en’: 영어)
- Returns:
- DataFrame
제무제표 정보
- get_income_statement(Statement of comprehensive income)[source]
포괄손익계산서(Statement of comprehensive income)
- Parameters:
- separate: bool, optional
개별(True) / 연결(False, 기본)
- Returns:
- list of Table
포괄손익계산서 리스트
- get_period_information(lang: str = 'ko') DataFrame [source]
공시 문서 기간 정보
- Parameters:
- lang: str
표시 언어 설정(‘ko’: 한글, ‘en’: 영어)
- Returns:
- DataFrame
공시 문서 기간 정보
- get_table_by_code(code: str) Table | None [source]
Table 코드와 일치하는 Table 반환
- Parameters:
- code: str
Table 코드번호
- Returns:
- Table or None
코드 번호에 맞는 Table 또는 None
Table 클래스
- class dart_fss.xbrl.table.Table(parent, xbrl, code, definition, uri)[source]
XBRL Table
XBRL 파일에서 추출된 데이터를 기반으로 재무제표에 관한 정보를 담고 있는 클래스
- Attributes:
- parent: str
로드한 파일 이름
- code: str
테이블 코드
- definition: str
테이블 정의
- uri: str
테이블 uri
Methods
cls_filter
([start_dt, end_dt, label])classification 필터링 함수
get_value_by_concept_id
(concept_id[, ...])concept_id을 이용하여 값을 찾아 주는 함수
to_DataFrame
([cls, lang, start_dt, end_dt, ...])Pandas DataFrame으로 변환 하는 함수
- property calculations
계산식 반환
- property cls
classification 반환
- cls_filter(start_dt=None, end_dt=None, label=None)[source]
classification 필터링 함수
- Parameters:
- start_dt: str
검색 시작 일자
- end_dt: str
검색 종료 일자
- label: str
포함할 label 명
- Returns:
- list of cls
필터된 classification
- property dataset
dict of modelFact:
- property facts
list of modelFact:
- get_value_by_concept_id(concept_id, start_dt=None, end_dt=None, label=None, lang='en')[source]
concept_id을 이용하여 값을 찾아 주는 함수
- Parameters:
- concept_id: str
재무제표 계정의 concept_id
- start_dt: str
검색 시작 일자
- end_dt: str
검색 종료 일자
- label: str
검색 포함 label
- lang: str
‘ko’ 한글 / ‘en’ 영문
- Returns:
- dict of (str or float)
{ column 이름 : 값 }
- property labels
labels 반환
- to_DataFrame(cls=None, lang='ko', start_dt=None, end_dt=None, label=None, show_abstract=False, show_class=True, show_depth=10, show_concept=True, separator=True, ignore_subclass=True)[source]
Pandas DataFrame으로 변환 하는 함수
- Parameters:
- cls: dict, optional
classification
- lang: str, optional
‘ko’ 한글 or ‘en’ 영문
- start_dt: str, optional
검색 시작 일자
- end_dt: str, optional
검색 종료 일자
- label: str, optional
Column label에 포함될 단어
- show_abstract: bool, optional
abstract 표시 여부
- show_class: bool, optional
class 표시 여부
- show_depth: int, optional
class 표시 깊이
- show_concept: bool, optional
concept_id 표시 여부
- separator: bool, optional
숫자 첫단위 표시 여부
- ignore_subclass: bool, optional
대분류인 연결재무제표 및 별도재무제표를 제외한 나머지 column의 표시 여부 ((‘연결재무제표’, ‘자본금’) / (‘연결재무제표’, ‘주식발행초과금’) 등)
- Returns:
- DataFrame
재무제표 DataFrame
Example
import dart_fss as dart
# 삼성전자 code
corp_code = '00126380'
# 모든 상장된 기업 리스트 불러오기
corp_list = dart.get_corp_list()
# 삼성전자
samsung = corp_list.find_by_corp_code(corp_code=corp_code)
# 사업보고서 검색
reports = samsung.search_filings(bgn_de='20190101', pblntf_detail_ty='a001')
# 첫번째 리포트 선택
report = reports[0]
# 리포트의 xbrl 데이터
xbrl = report.xbrl
# 연결재무제표 존재 여부 확인( True / False)
xbrl.exist_consolidated()
# 감사 정보 (영문) -> DataFrame 형태로 반환됨
audit = xbrl.get_audit_information(lang='en')
# 연결 현금흐름표 추출 (리스트 반환)
cf = xbrl.get_cash_flows()
# 연결 현금프름표
cf = cf[0]
# Pandas DataFrame으로 변환
df = cf.to_DataFrame()
# Pandas DataFrame으로 변환 / 분류 정보 제외
df_wo_class = cf.to_DataFrame(show_class=False)