{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "6b1f2d8c", "metadata": {}, "outputs": [], "source": [ "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 2, "id": "74dfa9d9-6a45-4b21-ba7c-4a63648a74d0", "metadata": {}, "outputs": [], "source": [ "import OpenDartReader\n", "\n", "api_key = 'OPEN DART API KEY를 발급받아 넣습니다'\n", "dart = OpenDartReader(api_key)" ] }, { "cell_type": "code", "execution_count": 3, "id": "5fb92433-d77f-4daf-950f-d32ab57f4a3b", "metadata": {}, "outputs": [], "source": [ "orion = dart.list('271560', start='2021-01-01', end='2022-12-31')" ] }, { "cell_type": "code", "execution_count": 4, "id": "6b0d09be-95ee-4671-9524-49493a97dba5", "metadata": {}, "outputs": [], "source": [ "orion = orion[orion['report_nm'].str.find('잠정')>-1]" ] }, { "cell_type": "code", "execution_count": 5, "id": "8be7186c", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
corp_codecorp_namestock_codecorp_clsreport_nmrcept_noflr_nmrcept_dtrm
101238169오리온271560Y연결재무제표기준영업(잠정)실적(공정공시)20221220800115오리온20221220
301238169오리온271560Y연결재무제표기준영업(잠정)실적(공정공시)20221115800105오리온20221115
801238169오리온271560Y연결재무제표기준영업(잠정)실적(공정공시)20221018800103오리온20221018
1101238169오리온271560Y연결재무제표기준영업(잠정)실적(공정공시)20220920800101오리온20220920
1301238169오리온271560Y연결재무제표기준영업(잠정)실적(공정공시)20220822800147오리온20220822
1501238169오리온271560Y연결재무제표기준영업(잠정)실적(공정공시)20220719800129오리온20220719
1901238169오리온271560Y연결재무제표기준영업(잠정)실적(공정공시)20220614800163오리온20220614
2101238169오리온271560Y연결재무제표기준영업(잠정)실적(공정공시)20220517800116오리온20220517
2401238169오리온271560Y연결재무제표기준영업(잠정)실적(공정공시)20220419800285오리온20220419
3001238169오리온271560Y연결재무제표기준영업(잠정)실적(공정공시)20220324800683오리온20220324
3401238169오리온271560Y[기재정정]연결재무제표기준영업(잠정)실적(공정공시)20220316802320오리온20220316
3501238169오리온271560Y[기재정정]연결재무제표기준영업(잠정)실적(공정공시)20220316802316오리온20220316
4201238169오리온271560Y연결재무제표기준영업(잠정)실적(공정공시)20211214800323오리온20211214
4601238169오리온271560Y연결재무제표기준영업(잠정)실적(공정공시)20211116800152오리온20211116
4801238169오리온271560Y연결재무제표기준영업(잠정)실적(공정공시)20211110800242오리온20211110
5001238169오리온271560Y연결재무제표기준영업(잠정)실적(공정공시)20211019800231오리온20211019
5201238169오리온271560Y연결재무제표기준영업(잠정)실적(공정공시)20210914800231오리온20210914
5301238169오리온271560Y연결재무제표기준영업(잠정)실적(공정공시)20210819800209오리온20210819
5601238169오리온271560Y연결재무제표기준영업(잠정)실적(공정공시)20210811800284오리온20210811
5701238169오리온271560Y연결재무제표기준영업(잠정)실적(공정공시)20210720800215오리온20210720
5901238169오리온271560Y연결재무제표기준영업(잠정)실적(공정공시)20210615800407오리온20210615
6101238169오리온271560Y연결재무제표기준영업(잠정)실적(공정공시)20210518800183오리온20210518
6301238169오리온271560Y연결재무제표기준영업(잠정)실적(공정공시)20210506800215오리온20210506
6501238169오리온271560Y연결재무제표기준영업(잠정)실적(공정공시)20210414800234오리온20210414
6901238169오리온271560Y연결재무제표기준영업(잠정)실적(공정공시)20210316800253오리온20210316
7201238169오리온271560Y[기재정정]연결재무제표기준영업(잠정)실적(공정공시)20210310801375오리온20210310
7501238169오리온271560Y[기재정정]연결재무제표기준영업(잠정)실적(공정공시)20210310801222오리온20210310
7601238169오리온271560Y[기재정정]연결재무제표기준영업(잠정)실적(공정공시)20210310801190오리온20210310
\n", "
" ], "text/plain": [ " corp_code corp_name stock_code corp_cls report_nm \\\n", "1 01238169 오리온 271560 Y 연결재무제표기준영업(잠정)실적(공정공시) \n", "3 01238169 오리온 271560 Y 연결재무제표기준영업(잠정)실적(공정공시) \n", "8 01238169 오리온 271560 Y 연결재무제표기준영업(잠정)실적(공정공시) \n", "11 01238169 오리온 271560 Y 연결재무제표기준영업(잠정)실적(공정공시) \n", "13 01238169 오리온 271560 Y 연결재무제표기준영업(잠정)실적(공정공시) \n", "15 01238169 오리온 271560 Y 연결재무제표기준영업(잠정)실적(공정공시) \n", "19 01238169 오리온 271560 Y 연결재무제표기준영업(잠정)실적(공정공시) \n", "21 01238169 오리온 271560 Y 연결재무제표기준영업(잠정)실적(공정공시) \n", "24 01238169 오리온 271560 Y 연결재무제표기준영업(잠정)실적(공정공시) \n", "30 01238169 오리온 271560 Y 연결재무제표기준영업(잠정)실적(공정공시) \n", "34 01238169 오리온 271560 Y [기재정정]연결재무제표기준영업(잠정)실적(공정공시) \n", "35 01238169 오리온 271560 Y [기재정정]연결재무제표기준영업(잠정)실적(공정공시) \n", "42 01238169 오리온 271560 Y 연결재무제표기준영업(잠정)실적(공정공시) \n", "46 01238169 오리온 271560 Y 연결재무제표기준영업(잠정)실적(공정공시) \n", "48 01238169 오리온 271560 Y 연결재무제표기준영업(잠정)실적(공정공시) \n", "50 01238169 오리온 271560 Y 연결재무제표기준영업(잠정)실적(공정공시) \n", "52 01238169 오리온 271560 Y 연결재무제표기준영업(잠정)실적(공정공시) \n", "53 01238169 오리온 271560 Y 연결재무제표기준영업(잠정)실적(공정공시) \n", "56 01238169 오리온 271560 Y 연결재무제표기준영업(잠정)실적(공정공시) \n", "57 01238169 오리온 271560 Y 연결재무제표기준영업(잠정)실적(공정공시) \n", "59 01238169 오리온 271560 Y 연결재무제표기준영업(잠정)실적(공정공시) \n", "61 01238169 오리온 271560 Y 연결재무제표기준영업(잠정)실적(공정공시) \n", "63 01238169 오리온 271560 Y 연결재무제표기준영업(잠정)실적(공정공시) \n", "65 01238169 오리온 271560 Y 연결재무제표기준영업(잠정)실적(공정공시) \n", "69 01238169 오리온 271560 Y 연결재무제표기준영업(잠정)실적(공정공시) \n", "72 01238169 오리온 271560 Y [기재정정]연결재무제표기준영업(잠정)실적(공정공시) \n", "75 01238169 오리온 271560 Y [기재정정]연결재무제표기준영업(잠정)실적(공정공시) \n", "76 01238169 오리온 271560 Y [기재정정]연결재무제표기준영업(잠정)실적(공정공시) \n", "\n", " rcept_no flr_nm rcept_dt rm \n", "1 20221220800115 오리온 20221220 유 \n", "3 20221115800105 오리온 20221115 유 \n", "8 20221018800103 오리온 20221018 유 \n", "11 20220920800101 오리온 20220920 유 \n", "13 20220822800147 오리온 20220822 유 \n", "15 20220719800129 오리온 20220719 유 \n", "19 20220614800163 오리온 20220614 유 \n", "21 20220517800116 오리온 20220517 유 \n", "24 20220419800285 오리온 20220419 유 \n", "30 20220324800683 오리온 20220324 유 \n", "34 20220316802320 오리온 20220316 유 \n", "35 20220316802316 오리온 20220316 유 \n", "42 20211214800323 오리온 20211214 유 \n", "46 20211116800152 오리온 20211116 유 \n", "48 20211110800242 오리온 20211110 유 \n", "50 20211019800231 오리온 20211019 유 \n", "52 20210914800231 오리온 20210914 유 \n", "53 20210819800209 오리온 20210819 유 \n", "56 20210811800284 오리온 20210811 유 \n", "57 20210720800215 오리온 20210720 유 \n", "59 20210615800407 오리온 20210615 유 \n", "61 20210518800183 오리온 20210518 유 \n", "63 20210506800215 오리온 20210506 유 \n", "65 20210414800234 오리온 20210414 유 \n", "69 20210316800253 오리온 20210316 유 \n", "72 20210310801375 오리온 20210310 유 \n", "75 20210310801222 오리온 20210310 유 \n", "76 20210310801190 오리온 20210310 유 " ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "orion" ] }, { "cell_type": "code", "execution_count": 6, "id": "30e3d6eb", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0123456
0※ 동 정보는 잠정치로서 향후 확정치와는 다를 수 있음.※ 동 정보는 잠정치로서 향후 확정치와는 다를 수 있음.※ 동 정보는 잠정치로서 향후 확정치와는 다를 수 있음.※ 동 정보는 잠정치로서 향후 확정치와는 다를 수 있음.※ 동 정보는 잠정치로서 향후 확정치와는 다를 수 있음.※ 동 정보는 잠정치로서 향후 확정치와는 다를 수 있음.※ 동 정보는 잠정치로서 향후 확정치와는 다를 수 있음.
11. 연결실적내용1. 연결실적내용1. 연결실적내용1. 연결실적내용단위 : 억원, %단위 : 억원, %단위 : 억원, %
2구분구분당기실적전기실적전기대비증감율(%)전년동기실적전년동기대비증감율(%)
3구분구분(-)(-)전기대비증감율(%)(-)전년동기대비증감율(%)
4매출액당해실적-----
5매출액누계실적-----
6영업이익당해실적-----
7영업이익누계실적-----
8법인세비용차감전계속사업이익당해실적-----
9법인세비용차감전계속사업이익누계실적-----
10당기순이익당해실적-----
11당기순이익누계실적-----
12지배기업 소유주지분 순이익당해실적-----
13지배기업 소유주지분 순이익누계실적-----
14구분(억원, %)구분(억원, %)당기실적(21년 6월)전기실적(21년 5월)전기대비 증감율(%)전년동기실적(20년 6월)전년동기대비증감율(%)
15국가별 매출액국가별 매출액-----
16한국(오리온)한국(오리온)628645-2.65896.6
17중국(OFC)중국(OFC)651787-17.3730-10.8
18베트남(OFV)베트남(OFV)210216-2.818513.5
19러시아(OIE)러시아(OIE)998812.56943.5
20국가별 영업이익국가별 영업이익-----
21한국(오리온)한국(오리온)8998-9.27027.1
22중국(OFC등 9개법인)중국(OFC등 9개법인)2651-49.081-67.9
23베트남(OFV)베트남(OFV)2630-13.329-10.3
24러시아(OIE)러시아(OIE)13128.3128.3
252. 정보제공내역2. 정보제공내역정보제공자정보제공자재경팀재경팀재경팀
262. 정보제공내역2. 정보제공내역정보제공대상자정보제공대상자기관투자자 및 일반투자자 등기관투자자 및 일반투자자 등기관투자자 및 일반투자자 등
272. 정보제공내역2. 정보제공내역정보제공(예정)일시정보제공(예정)일시공정공시 후 수시 제공공정공시 후 수시 제공공정공시 후 수시 제공
282. 정보제공내역2. 정보제공내역행사명(장소)행사명(장소)---
293. 연락처(관련부서/전화번호)3. 연락처(관련부서/전화번호)3. 연락처(관련부서/전화번호)3. 연락처(관련부서/전화번호)02-710-600002-710-600002-710-6000
304. 기타 투자판단과 관련한 중요사항4. 기타 투자판단과 관련한 중요사항4. 기타 투자판단과 관련한 중요사항4. 기타 투자판단과 관련한 중요사항4. 기타 투자판단과 관련한 중요사항4. 기타 투자판단과 관련한 중요사항4. 기타 투자판단과 관련한 중요사항
31- 중국 종속회사에 대한 오리온의 소유지분율은 95.2% 이며, 베트남법인 소유지분...- 중국 종속회사에 대한 오리온의 소유지분율은 95.2% 이며, 베트남법인 소유지분...- 중국 종속회사에 대한 오리온의 소유지분율은 95.2% 이며, 베트남법인 소유지분...- 중국 종속회사에 대한 오리온의 소유지분율은 95.2% 이며, 베트남법인 소유지분...- 중국 종속회사에 대한 오리온의 소유지분율은 95.2% 이며, 베트남법인 소유지분...- 중국 종속회사에 대한 오리온의 소유지분율은 95.2% 이며, 베트남법인 소유지분...- 중국 종속회사에 대한 오리온의 소유지분율은 95.2% 이며, 베트남법인 소유지분...
32※ 관련공시※ 관련공시-----
\n", "
" ], "text/plain": [ " 0 \\\n", "0 ※ 동 정보는 잠정치로서 향후 확정치와는 다를 수 있음. \n", "1 1. 연결실적내용 \n", "2 구분 \n", "3 구분 \n", "4 매출액 \n", "5 매출액 \n", "6 영업이익 \n", "7 영업이익 \n", "8 법인세비용차감전계속사업이익 \n", "9 법인세비용차감전계속사업이익 \n", "10 당기순이익 \n", "11 당기순이익 \n", "12 지배기업 소유주지분 순이익 \n", "13 지배기업 소유주지분 순이익 \n", "14 구분(억원, %) \n", "15 국가별 매출액 \n", "16 한국(오리온) \n", "17 중국(OFC) \n", "18 베트남(OFV) \n", "19 러시아(OIE) \n", "20 국가별 영업이익 \n", "21 한국(오리온) \n", "22 중국(OFC등 9개법인) \n", "23 베트남(OFV) \n", "24 러시아(OIE) \n", "25 2. 정보제공내역 \n", "26 2. 정보제공내역 \n", "27 2. 정보제공내역 \n", "28 2. 정보제공내역 \n", "29 3. 연락처(관련부서/전화번호) \n", "30 4. 기타 투자판단과 관련한 중요사항 \n", "31 - 중국 종속회사에 대한 오리온의 소유지분율은 95.2% 이며, 베트남법인 소유지분... \n", "32 ※ 관련공시 \n", "\n", " 1 \\\n", "0 ※ 동 정보는 잠정치로서 향후 확정치와는 다를 수 있음. \n", "1 1. 연결실적내용 \n", "2 구분 \n", "3 구분 \n", "4 당해실적 \n", "5 누계실적 \n", "6 당해실적 \n", "7 누계실적 \n", "8 당해실적 \n", "9 누계실적 \n", "10 당해실적 \n", "11 누계실적 \n", "12 당해실적 \n", "13 누계실적 \n", "14 구분(억원, %) \n", "15 국가별 매출액 \n", "16 한국(오리온) \n", "17 중국(OFC) \n", "18 베트남(OFV) \n", "19 러시아(OIE) \n", "20 국가별 영업이익 \n", "21 한국(오리온) \n", "22 중국(OFC등 9개법인) \n", "23 베트남(OFV) \n", "24 러시아(OIE) \n", "25 2. 정보제공내역 \n", "26 2. 정보제공내역 \n", "27 2. 정보제공내역 \n", "28 2. 정보제공내역 \n", "29 3. 연락처(관련부서/전화번호) \n", "30 4. 기타 투자판단과 관련한 중요사항 \n", "31 - 중국 종속회사에 대한 오리온의 소유지분율은 95.2% 이며, 베트남법인 소유지분... \n", "32 ※ 관련공시 \n", "\n", " 2 \\\n", "0 ※ 동 정보는 잠정치로서 향후 확정치와는 다를 수 있음. \n", "1 1. 연결실적내용 \n", "2 당기실적 \n", "3 (-) \n", "4 - \n", "5 - \n", "6 - \n", "7 - \n", "8 - \n", "9 - \n", "10 - \n", "11 - \n", "12 - \n", "13 - \n", "14 당기실적(21년 6월) \n", "15 - \n", "16 628 \n", "17 651 \n", "18 210 \n", "19 99 \n", "20 - \n", "21 89 \n", "22 26 \n", "23 26 \n", "24 13 \n", "25 정보제공자 \n", "26 정보제공대상자 \n", "27 정보제공(예정)일시 \n", "28 행사명(장소) \n", "29 3. 연락처(관련부서/전화번호) \n", "30 4. 기타 투자판단과 관련한 중요사항 \n", "31 - 중국 종속회사에 대한 오리온의 소유지분율은 95.2% 이며, 베트남법인 소유지분... \n", "32 - \n", "\n", " 3 \\\n", "0 ※ 동 정보는 잠정치로서 향후 확정치와는 다를 수 있음. \n", "1 1. 연결실적내용 \n", "2 전기실적 \n", "3 (-) \n", "4 - \n", "5 - \n", "6 - \n", "7 - \n", "8 - \n", "9 - \n", "10 - \n", "11 - \n", "12 - \n", "13 - \n", "14 전기실적(21년 5월) \n", "15 - \n", "16 645 \n", "17 787 \n", "18 216 \n", "19 88 \n", "20 - \n", "21 98 \n", "22 51 \n", "23 30 \n", "24 12 \n", "25 정보제공자 \n", "26 정보제공대상자 \n", "27 정보제공(예정)일시 \n", "28 행사명(장소) \n", "29 3. 연락처(관련부서/전화번호) \n", "30 4. 기타 투자판단과 관련한 중요사항 \n", "31 - 중국 종속회사에 대한 오리온의 소유지분율은 95.2% 이며, 베트남법인 소유지분... \n", "32 - \n", "\n", " 4 \\\n", "0 ※ 동 정보는 잠정치로서 향후 확정치와는 다를 수 있음. \n", "1 단위 : 억원, % \n", "2 전기대비증감율(%) \n", "3 전기대비증감율(%) \n", "4 - \n", "5 - \n", "6 - \n", "7 - \n", "8 - \n", "9 - \n", "10 - \n", "11 - \n", "12 - \n", "13 - \n", "14 전기대비 증감율(%) \n", "15 - \n", "16 -2.6 \n", "17 -17.3 \n", "18 -2.8 \n", "19 12.5 \n", "20 - \n", "21 -9.2 \n", "22 -49.0 \n", "23 -13.3 \n", "24 8.3 \n", "25 재경팀 \n", "26 기관투자자 및 일반투자자 등 \n", "27 공정공시 후 수시 제공 \n", "28 - \n", "29 02-710-6000 \n", "30 4. 기타 투자판단과 관련한 중요사항 \n", "31 - 중국 종속회사에 대한 오리온의 소유지분율은 95.2% 이며, 베트남법인 소유지분... \n", "32 - \n", "\n", " 5 \\\n", "0 ※ 동 정보는 잠정치로서 향후 확정치와는 다를 수 있음. \n", "1 단위 : 억원, % \n", "2 전년동기실적 \n", "3 (-) \n", "4 - \n", "5 - \n", "6 - \n", "7 - \n", "8 - \n", "9 - \n", "10 - \n", "11 - \n", "12 - \n", "13 - \n", "14 전년동기실적(20년 6월) \n", "15 - \n", "16 589 \n", "17 730 \n", "18 185 \n", "19 69 \n", "20 - \n", "21 70 \n", "22 81 \n", "23 29 \n", "24 12 \n", "25 재경팀 \n", "26 기관투자자 및 일반투자자 등 \n", "27 공정공시 후 수시 제공 \n", "28 - \n", "29 02-710-6000 \n", "30 4. 기타 투자판단과 관련한 중요사항 \n", "31 - 중국 종속회사에 대한 오리온의 소유지분율은 95.2% 이며, 베트남법인 소유지분... \n", "32 - \n", "\n", " 6 \n", "0 ※ 동 정보는 잠정치로서 향후 확정치와는 다를 수 있음. \n", "1 단위 : 억원, % \n", "2 전년동기대비증감율(%) \n", "3 전년동기대비증감율(%) \n", "4 - \n", "5 - \n", "6 - \n", "7 - \n", "8 - \n", "9 - \n", "10 - \n", "11 - \n", "12 - \n", "13 - \n", "14 전년동기대비증감율(%) \n", "15 - \n", "16 6.6 \n", "17 -10.8 \n", "18 13.5 \n", "19 43.5 \n", "20 - \n", "21 27.1 \n", "22 -67.9 \n", "23 -10.3 \n", "24 8.3 \n", "25 재경팀 \n", "26 기관투자자 및 일반투자자 등 \n", "27 공정공시 후 수시 제공 \n", "28 - \n", "29 02-710-6000 \n", "30 4. 기타 투자판단과 관련한 중요사항 \n", "31 - 중국 종속회사에 대한 오리온의 소유지분율은 95.2% 이며, 베트남법인 소유지분... \n", "32 - " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# test\n", "xml_text = dart.document('20210720800215')\n", "df = pd.read_html(xml_text)[0]\n", "df" ] }, { "cell_type": "code", "execution_count": 7, "id": "bcd56d8e", "metadata": {}, "outputs": [], "source": [ "def make_ym(text):\n", " try:\n", " text_s = text.replace(' ','').split('년')\n", " year = text_s[0].replace('당기실적(','20')\n", " month = text_s[1].replace('월)','').zfill(2)\n", " except:\n", " return text\n", " return year + month " ] }, { "cell_type": "code", "execution_count": 51, "id": "8627b228", "metadata": {}, "outputs": [], "source": [ "def make_table(rcept_no, nth=0, cla=\"매출액\"):\n", " try:\n", " xml_text = dart.document(rcept_no)\n", " df = pd.read_html(xml_text)[nth]\n", " if cla == \"매출액\":\n", " df1 = df.iloc[16:20]\n", " elif cla == \"영업이익\":\n", " df1 = df.iloc[21:24]\n", " \n", " df1.columns = df.iloc[14].to_list()\n", " df1 =df1.iloc[:, 0:3]\n", "\n", " df1.columns = ['국가','기타',make_ym(df1.columns[2])]\n", " df1 = df1.set_index('국가').drop('기타', axis=1)\n", " \n", " except:\n", " if nth!=5:\n", " df1 = make_table(rcept_no, nth=nth+1)\n", " else:\n", " print('error')\n", " return pd.DataFrame()\n", " \n", " return df1" ] }, { "cell_type": "code", "execution_count": 52, "id": "f196eed9", "metadata": { "scrolled": true }, "outputs": [], "source": [ "for idx, r in enumerate(orion['rcept_no']):\n", " if idx == 0: sale = make_table(r)\n", " else:\n", " mt = make_table(r)\n", " \n", " try: \n", " sale = sale.join(mt)\n", " except:\n", " pass" ] }, { "cell_type": "code", "execution_count": 53, "id": "b97a8e19", "metadata": {}, "outputs": [], "source": [ "def transform(sale):\n", " sale = sale[[c for c in sale.columns if c[0:2]==\"20\"]]\n", "\n", " sale = sale.stack().reset_index(drop=False)\n", "\n", " sale['year'] = sale['level_1'].str[0:4]\n", " sale['month'] = sale['level_1'].str[4:6]\n", " sale = sale.rename(columns={0:'val'})\n", "\n", " sale['year'] = sale['year'].astype(str)\n", " sale['month'] = sale['month'].astype(int)\n", " sale['val'] = sale['val'].astype(int)\n", " \n", " return sale\n" ] }, { "cell_type": "code", "execution_count": 54, "id": "782529c1", "metadata": {}, "outputs": [], "source": [ "sale = transform(sale)" ] }, { "cell_type": "code", "execution_count": 55, "id": "4802ac2f", "metadata": {}, "outputs": [], "source": [ "sale = sale[sale['level_1']>='202100']" ] }, { "cell_type": "code", "execution_count": 56, "id": "4a25611f", "metadata": {}, "outputs": [], "source": [ "import plotly.express as px" ] }, { "cell_type": "code", "execution_count": null, "id": "33bbb705", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 57, "id": "70e4b0f6", "metadata": {}, "outputs": [], "source": [ "def get_graph(country):\n", " gr = sale[sale['국가']==country]\n", " gra = px.line(data_frame=gr, x='month', y='val', color='year')\n", " gra.show()" ] }, { "cell_type": "code", "execution_count": 58, "id": "69c6e50d", "metadata": {}, "outputs": [], "source": [ "country_list = set(sale['국가'].to_list())" ] }, { "cell_type": "code", "execution_count": 59, "id": "6f12184d", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "d64f647908064640898d0018c5884905", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(Dropdown(description='country', options=('베트남(OFV)', '한국(오리온)', '중국(OFC)', '러시아(OIE)'), …" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from ipywidgets import interact\n", "\n", "interact(get_graph, country=country_list)" ] }, { "cell_type": "markdown", "id": "5c44e7a9", "metadata": {}, "source": [ "영업이익" ] }, { "cell_type": "code", "execution_count": 60, "id": "3ce58377", "metadata": {}, "outputs": [], "source": [ "for idx, r in enumerate(orion['rcept_no']):\n", " if idx == 0: prof = make_table(r, cla='영업이익')\n", " else:\n", " mt = make_table(r, cla='영업이익')\n", " \n", " try: \n", " prof = prof.join(mt)\n", " except:\n", " pass" ] }, { "cell_type": "code", "execution_count": 61, "id": "57805303", "metadata": {}, "outputs": [], "source": [ "prof = transform(prof)" ] }, { "cell_type": "code", "execution_count": 62, "id": "f16915b5", "metadata": {}, "outputs": [], "source": [ "prof = prof[prof['level_1']>='202100']" ] }, { "cell_type": "code", "execution_count": 63, "id": "0fb7ca63", "metadata": {}, "outputs": [], "source": [ "def get_graph(country):\n", " gr = prof[prof['국가']==country]\n", " gra = px.bar(data_frame=gr, x='month', y='val', color='year').update_layout(barmode='group')\n", " gra.show()" ] }, { "cell_type": "code", "execution_count": 66, "id": "8e415f54", "metadata": {}, "outputs": [], "source": [ "country_prof_list = set(prof['국가'].to_list())" ] }, { "cell_type": "code", "execution_count": 67, "id": "0553f7a0", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "455e3d3b3c6443f8985df7c82fa76b98", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(Dropdown(description='country', options=('한국(오리온)', '중국(OFC등 8개법인)', '베트남(OFV)'), value=…" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from ipywidgets import interact\n", "\n", "interact(get_graph, country=country_prof_list)" ] }, { "cell_type": "code", "execution_count": 22, "id": "6809aa50", "metadata": {}, "outputs": [], "source": [ "from plotly.subplots import make_subplots\n", "import plotly.graph_objects as go" ] }, { "cell_type": "code", "execution_count": 23, "id": "13769f29", "metadata": {}, "outputs": [], "source": [ "country='한국(오리온)'" ] }, { "cell_type": "code", "execution_count": 46, "id": "21c0a237", "metadata": {}, "outputs": [], "source": [ "def gra_new(country):\n", " fig = make_subplots(\n", " rows=2, cols=1, shared_xaxes=True, vertical_spacing=0.02,\n", " row_heights = [0.7, 0.3],\n", " )\n", "\n", " sale_gra = sale[sale['국가']==country]\n", " prof_gra = prof[prof['국가']==country]\n", "\n", " sale_gra_pre = sale_gra[sale_gra['year']=='2021']\n", " sale_gra_aft = sale_gra[sale_gra['year']=='2022']\n", " prof_gra_pre = prof_gra[prof_gra['year']=='2021']\n", " prof_gra_aft = prof_gra[prof_gra['year']=='2022']\n", "\n", " fig.add_trace(go.Line(x=sale_gra_pre['month'], y=sale_gra_pre['val'], name='2021년 매출액'), row=1, col=1)\n", " fig.add_trace(go.Line(x=sale_gra_aft['month'], y=sale_gra_aft['val'], name='2022년 매출액'), row=1, col=1)\n", "\n", " fig.add_trace(go.Bar(x=prof_gra_pre['month'], y=prof_gra_pre['val'], name='2021년 영업이익'\n", " ,marker={'color': 'blue'}), row=2, col=1)\n", " fig.add_trace(go.Bar(x=prof_gra_aft['month'], y=prof_gra_aft['val'], name='2022년 영업이익'\n", " ,marker={'color': 'red'}), row=2, col=1) \n", " fig.show()" ] }, { "cell_type": "code", "execution_count": 47, "id": "4dba1476", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "3a2f193f5b6f446682de4b6d8efe4710", "version_major": 2, "version_minor": 0 }, "text/plain": [ "interactive(children=(Dropdown(description='country', options=('베트남(OFV)', '한국(오리온)', '중국(OFC)', '러시아(OIE)'), …" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from ipywidgets import interact\n", "\n", "interact(gra_new, country=country_list)" ] }, { "cell_type": "code", "execution_count": null, "id": "c062d0c9", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.10" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 5 }