import pandas as pd import numpy as np import matplotlib.pyplot as plt import datetime as dt from pandas_datareader import data as pdr import yfinance as yf set100 = ['AAV', 'ACE', 'ADVANC', 'AEONTS', 'AMATA', 'AOT', 'AP', 'BAM', 'BANPU', 'BBL', 'BCH', 'BCP', 'BCPG', 'BDMS', 'BEC', 'BEM', 'BGRIM', 'BH', 'BJC', 'BTS', 'CBG', 'CENTEL', 'CHG', 'CK', '***', 'COM7', 'CPALL', 'CPF', 'CPN', 'CRC', 'DELTA', 'DOHOME', 'DTAC', 'EA', 'EGCO', 'ESSO', 'GLOBAL', 'GPSC', 'GULF', 'GUNKUL', 'HANA', 'HMPRO', 'ICHI', 'INTUCH', 'IRPC', 'IVL', 'JAS', 'JMART', 'JMT', 'KBANK', 'KCE', 'KKP', 'KTB', 'KTC', 'LH', 'MAJOR', 'MEGA', 'MINT', 'MTC', 'NRF', 'OR', 'ORI', 'OSP', 'PLANB', 'PRM', 'PSL', 'PTG', 'PTL', 'PTT', 'PTTEP', 'PTTGC', 'QH', 'RATCH', 'RBF', 'RS', 'SAWAD', 'SCB', 'SCC', 'SCGP', 'SINGER', 'SPALI', 'SPRC', 'STA', 'STEC', 'STGT', 'SUPER', 'SYNEX', 'TASCO', 'TCAP', 'THANI', 'TISCO', 'TKN', 'TOP', 'TQM', 'TRUE', 'TTB', 'TU', 'TVO', 'VGI', 'WHA'] rawData = {} removedStock = {} reasons = ["Unable to extract ROA", "Unable to extract ROE", "Unable to extract both ROA and ROE"] for i in range(len(set100)): stockROA = yf.Ticker(set100[i]+".BK").info["returnOnAssets"] stockROE = yf.Ticker(set100[i]+".BK").info["returnOnEquity"] if stockROA == None and stockROE == None: removedStock[set100[i]] = reasons[2] continue if stockROA == None: removedStock[set100[i]] = reasons[0] continue if stockROE == None: removedStock[set100[i]] = reasons[1] continue rawData[set100[i]] = {} rawData[set100[i]]["Return on Assets"] = stockROA*100 rawData[set100[i]]["Return on Equity"] = stockROE*100 rawData = pd.DataFrame.from_dict(rawData).transpose() rawData