from Data import YahooData import numpy as np import pandas as pd from Data import Utility universe = Utility.get_stock_universe('stock_universe.csv') u_tick = universe['Tick'].unique().tolist() universe.set_index('Tick', inplace=True) returns = YahooData.get_returns(u_tick) ev_ebitda = YahooData.get_ev_ebitda(u_tick) ocf_ev = YahooData.get_ocf_ev(u_tick) ratios = YahooData.get_ratios(u_tick, ['Price', 'PS', 'PB', 'PE', '50ma', '200ma']) comp_info = YahooData.get_sector_industry(u_tick) df = universe.join(comp_info) df = df.join(ratios) df = df.join(ev_ebitda) df = df.join(ocf_ev) df = df.join(returns) df = df.replace('N/A', np.nan) df['ma_ratio'] = df['50ma'].astype(float) / df['200ma'].astype(float) df['ebitda_ev_rank'] = df['ebitda_ev'].astype(float).rank(ascending=True) df['ocf_ev_rank'] = df['ocf_ev'].astype(float).rank(ascending=True) df['PS_rank'] = df['PS'].astype(float).rank(ascending=False) df['PB_rank'] = df['PB'].astype(float).rank(ascending=False) df['PE_rank'] = df['PE'].astype(float).rank(ascending=False) df['ma_ratio_rank'] = df['ma_ratio'].rank(ascending=True) df['return_rank'] = df['1yr_rtn'].rank(ascending=True)