첨부파일
상장주식베타구하기.py
0.00MB
종목코드.xlsx
0.06MB
import pandas as pd
import numpy as np
# 라이브러리 불러오기
import FinanceDataReader as fdr
import xlwings as xw
pd.set_option('display.max_columns', None)
# 베이스 디렉토리 설정
베이스_디렉토리 = os.getcwd()
# 종목코드 엑셀을 불러와서 DataFrame으로 만들기
df_종목코드 = pd.read_excel(베이스_디렉토리 + '\\종목코드.xlsx')
# 검색 칼럼이 1인 것만 필터링
df_종목코드 = df_종목코드[df_종목코드['검색'] == 1]
df_종목코드 = df_종목코드.reset_index()
# 기준일
시작일자 = '2019-01-01'
종료일자 = '2020-09-07'
# for 문
테이블_리스트 = []
for i in range(len(df_종목코드)):
개별종목코드 = df_종목코드.loc[i, '종목코드']
개별종목명 = df_종목코드.loc[i, '회사명']
df_개별종목 = fdr.DataReader(개별종목코드, 시작일자, 종료일자)
# KOSPI 200 list
df_코스피지수 = fdr.DataReader('KS11', 시작일자, 종료일자)
# df의 Date와 Close, 코스피지수 Date와 Close만 갖고 옴
df_종가_변동 = df_개별종목['Change']
df_코스피지수_종가_변동 = df_코스피지수 ['Change']
# 조인
df_조인 = pd.merge(df_종가_변동, df_코스피지수_종가_변동, how='left',
left_on = ['Date'], right_on = ['Date'],suffixes=('_개별', '_코스피지수'))
# 베타 구하기
공분산_개별_코스피 = df_조인.cov().iloc[0]['Change_코스피지수']
분산_코스피 = df_조인['Change_코스피지수'].var()
베타 = 공분산_개별_코스피/분산_코스피
print('종목코드 {} {}의 {}일부터 {}일까지 KOSPI 대비 daily B(베타)는 {:.2f} 입니다.'.format(개별종목코드,개별종목명,시작일자,종료일자,베타))
테이블_리스트 = 테이블_리스트 + [[개별종목코드, 개별종목명, 시작일자, 종료일자, 베타]]
df_베타결과 = pd.DataFrame.from_records(테이블_리스트, columns = ['개별종목코드', '개별종목명', '시작일자', '종료일자', '베타'])
# 주가 및 변동 history 테이블 구하기
df_종가변동_조인 = pd.merge(df_개별종목, df_코스피지수, how='left',
left_on = ['Date'], right_on = ['Date'],suffixes=('_{}'.format(개별종목명), '_코스피지수'))
# 주가 및 변동 history 테이블에서 필요한 칼럼 선택
df_종가변동_조인 = df_종가변동_조인.iloc[:,[3,6,5,11]]
# 엑셀 출력
xw.view(df_종가변동_조인)
xw.view(df_베타결과)
'파이썬을 활용한 나만의 RPA 만들기 자료실' 카테고리의 다른 글
| 파이썬을 활용한 나만의 RPA 만들기 : 2개의 엑셀 파일 비교하기 (6) | 2020.12.30 |
|---|---|
| 파이썬을 활용한 나만의 RPA 만들기 : DART 전자공시 정보 조회 (0) | 2020.12.30 |
| 파이썬을 활용한 나만의 RPA 만들기 : 나라장터 공고파일 내려받기 (0) | 2020.12.30 |
| 파이썬을 활용한 나만의 RPA 만들기 : 국세청 사업자 휴폐업 조회 (0) | 2020.12.30 |
| 파이썬을 활용한 나만의 RPA 만들기 p.159 python code (2) | 2020.12.30 |