from bs4 import BeautifulSoup
from tabulate import tabulate
from FS import FS

import requests
import pandas as pd

# for fs_list in fs_lists2:
#     print(fs_list)
#     print('')
#     print('')

code = '005930'
fs = FS(code)

print(fs.get_PER())
print(fs.get_PBR())
print(fs.get_PSR())
print(fs.get_ROA())
print(fs.get_CFO())
print(fs.get_ROA_DIFF())
print(fs.get_LIQUID())
print(fs.get_MARGIN())
print(fs.get_TURN())
code_df = code_df[['회사명', '종목코드']]
code_df = code_df.rename(columns={'회사명': 'name', '종목코드': 'code'})

value_df = pd.DataFrame(columns=['종목', 'code', 'PER', 'PBR', 'PSR'])

for cnt in range(len(code_df)):
    # for cnt in range(20):
    item_name = code_df.loc[cnt, 'name']
    code = code_df.loc[cnt, 'code']
    # print(fs.get_PER())

    try:
        fs = FS(code)
        if fs.get_SC() < 10000:
            continue
        if math.isnan(fs.get_PER()) or math.isnan(fs.get_PBR()) or math.isnan(
                fs.get_PSR()):
            continue
        cnt += 1
        print(item_name)
        value_df.loc[cnt, ['종목']] = item_name
        value_df.loc[cnt, ['code']] = code
        value_df.loc[cnt, ['PER']] = fs.get_PER()
        value_df.loc[cnt, ['PBR']] = fs.get_PBR()
        value_df.loc[cnt, ['PSR']] = fs.get_PSR()
    except:
        continue

value_df['PERRANK'] = value_df['PER'].rank(axis=0)
value_df['PBRRANK'] = value_df['PBR'].rank(axis=0)
value_df['PSRRANK'] = value_df['PSR'].rank(axis=0)
Пример #3
0
code_df = pd.read_html(
    'http://kind.krx.co.kr/corpgeneral/corpList.do?method=download&searchType=13',
    header=0)[0]
code_df.종목코드 = code_df.종목코드.map('{:06d}'.format)
code_df = code_df[['회사명', '종목코드']]
code_df = code_df.rename(columns={'회사명': 'name', '종목코드': 'code'})

value_df = pd.DataFrame(columns=['종목', 'PER', 'PBR', 'PSR'])

for cnt in range(5):
    item_name = code_df.loc[cnt, 'name']
    code = code_df.loc[cnt, 'code']
    fs = FS(code)
    cnt += 1
    value_df.loc[cnt, ['종목']] = item_name
    value_df.loc[cnt, ['PER']] = fs.get_PER()
    value_df.loc[cnt, ['PBR']] = fs.get_PBR()
    value_df.loc[cnt, ['PSR']] = fs.get_PSR()

value_df['PERRANK'] = value_df['PER'].rank(axis=0)
value_df['PBRRANK'] = value_df['PBR'].rank(axis=0)
value_df['PSRRANK'] = value_df['PSR'].rank(axis=0)
# print(tabulate(value_df, headers='keys', tablefmt='psql'))

value_df['RANK'] = value_df.apply(
    lambda row: (row['PERRANK'] + row['PBRRANK'] + row['PSRRANK']), axis=1)
# value_df['RANK'] = value_df[['PER', 'PBR', 'PSR']].sum(axis=1)
value_df = value_df.sort_values(by=["RANK"], ascending=[True])
value_df = value_df[['종목', 'PER', 'PBR', 'PSR', 'RANK']]
print(tabulate(value_df, headers='keys', tablefmt='psql'))