feat: 13장 가치주 포트폴리오 계산 추가( PER,PBR이 낮은 회사 20개)
This commit is contained in:
parent
18e085fd3c
commit
4f25956fe0
31
example/13-kor-value-portfolio.py
Normal file
31
example/13-kor-value-portfolio.py
Normal file
@ -0,0 +1,31 @@
|
||||
import pandas as pd
|
||||
import numpy as np
|
||||
import quantcommon
|
||||
|
||||
|
||||
#가치주 포트폴리오. PER, PBR이 낮은 회사 20개
|
||||
# DB 연결
|
||||
engine = quantcommon.QuantCommon().create_engine()
|
||||
|
||||
ticker_list = pd.read_sql("""
|
||||
select * from kor_ticker
|
||||
where 기준일 = (select max(기준일) from kor_ticker)
|
||||
and 종목구분 = '보통주';
|
||||
""", con=engine)
|
||||
|
||||
value_list = pd.read_sql("""
|
||||
select * from kor_value
|
||||
where 기준일 = (select max(기준일) from kor_value);
|
||||
""", con=engine)
|
||||
|
||||
engine.dispose()
|
||||
|
||||
value_list.loc[value_list['값'] <= 0, '값'] = np.nan
|
||||
value_pivot = value_list.pivot(index='종목코드', columns='지표', values='값')
|
||||
data_bind = ticker_list[['종목코드', '종목명']].merge(value_pivot,
|
||||
how='left',
|
||||
on='종목코드')
|
||||
# print(data_bind.head())
|
||||
value_rank = data_bind[['PER', 'PBR']].rank(axis = 0)
|
||||
value_sum = value_rank.sum(axis = 1, skipna = False).rank()
|
||||
print(data_bind.loc[value_sum <= 20, ['종목코드', '종목명', 'PER', 'PBR']])
|
||||
Loading…
x
Reference in New Issue
Block a user