DART에서는 PER,ROA와 배당률, 배당금액을 가져올 수가 없어서 KRX에서 데이터를 가져왔습니다.
KRX 사이트에서 정보 데이터 시스템 >> 통계 >> 기본통계 >> 주식 >> 세부안내 >> PER/PBR/배당수익률(개별종목)
에서 다운로드 받을 수 있습니다.
엑셀파일로 다운로드 받은 데이터를 폴더에 정리 하였습니다. 파일 이름도 연도별로 규칙적으로 만들었습니다.
이제 파이썬으로 가져와서 정리하는 코드를 작성해 보겠습니다.
모듈은 이렇게 가져오면 됩니다.
openpyxl은 엑셀에 최종 분석/저장된 데이터를 좀 더 보기 좋게 만들기 위해 사용했습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
import os
from openpyxl import load_workbook
from openpyxl.utils import get_column_letter
from openpyxl.styles import Border, Side
import pandas as pd
def div(corp_code):
code = corp_code
folder = 'C:\\RPA\\DART\\배당'
files = os.listdir(folder)
for num, file in enumerate(files):
file_path = folder + '\\' + file
temp_df = pd.read_excel(file_path)
temp_df['연도'] = file[2:6] + '1231'
temp_df = temp_df.set_index('연도')
temp_df = temp_df.transpose()
if num == 0 :
df = temp_df
else:
df = pd.merge(df, temp_df, left_index= True, right_index= True)
df = df.transpose()
df = df[df['종목코드']==code]
df = df.transpose()
df = df.drop(['종목코드', '대비', '등락률'])
return df
corp_name = df.iloc[0][1]
df.to_excel(code + corp_name + '(배당).xlsx')
wb = load_workbook(code + corp_name + '(배당).xlsx')
ws = wb.worksheets[0]
# 테두리를 지정하기 위해 변수 지정
box = Border(left=Side(border_style='thin', color='FF000000'),
right=Side(border_style='thin', color='FF000000'),
top=Side(border_style='thin', color='FF000000'),
bottom=Side(border_style='thin', color='FF000000'))
col_fs = 2
while col_fs < ws.max_column + 1:
ws.column_dimensions[get_column_letter(col_fs)].width = 20
row_fs = 1
while row_fs < ws.max_row + 1:
ws.cell(row_fs, col_fs).number_format = '#,##0'
ws.cell(row_fs, col_fs).border = box
row_fs += 1
ws.cell(5, col_fs).number_format = '0.##'
ws.cell(7, col_fs).number_format = '0.##'
ws.cell(9, col_fs).number_format = '0.##'
col_fs += 1
wb.save(code + corp_name + '(배당).xlsx')
wb.close()
div('048260')
|
cs |
728x90
댓글