В настоящее время я новичок в StackOverflow, и мне понадобятся ваши знания по следующему вопросу. В настоящее время я пытаюсь создать функцию, которая загружает данные и преобразует их во фрейм данных с помощью Panda, но проблема с финансами Yahoo заключается в том, что не все тикеры (символы) для всех акций могут загружать данные, поэтому мне нужно обработать через 100 000 акций и выбросьте тот, который не работает, и используйте тот, который работает. Я хочу найти способ оптимизации этой функции, но на данный момент я не смог обработать более 1000 акций в час, используя только мой процессор. Я попытался изменить функцию и оптимизировать как можно лучше, но это самое лучшее, что я могу сделать, а также использовать графический процессор для его обработки (это была неудачная попытка, поскольку использование графического процессора на этом невозможно.)
def findAllCorrWithSelectStock(selectStock,listOfStock,start,end,newList):
list_withCorr = []
working_List = []
chosenAsset = web.DataReader([selectStock],'yahoo',start,end)['Adj Close']
for stock in listOfStock:
# Set DataFrame as the Stock Ticker
try:
temp = web.DataReader(stock,'yahoo',start,end)['Adj Close']
closing_df = pd.merge(temp, chosenAsset, left_index=True, right_index=True).rename(columns={'Adj Close': stock})
x = closing_df.corr().iloc[0][selectStock]
if math.isnan(x) :
pass
else:
list_withCorr.append((stock,closing_df.corr().iloc[0][selectStock]))
newList.append(stock)
except:
pass
srt = sorted(list_withCorr,key=lambda x: x[1], reverse=True)
return srt
проблема повторяется для всех oop, которые повторяют загрузку и сравнение данных. функция сгенерирует ранг наилучшим образом согласованного запаса с учетом выбранного запаса. Любая помощь будет признательна, и если есть какие-либо проблемы или проблемы, я вызвал вас, ребята, я очень сожалею заранее.