有没有一种方法可以加速递归加载雅虎财务数据,并使用pandas(特别是10万只股票)将其与选定的数据进行比较

2024-09-30 16:31:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前是StackOverflow的新手,我需要您在以下方面的专业知识。 我目前正在尝试创建一个函数,使用Panda加载数据并将其转换为数据帧,但Yahoo finance的问题是并非所有股票的股票代码(symbol)都可以加载数据,因此我需要处理100000只股票,丢弃不起作用的股票,使用起作用的股票。 我想找到一种优化此功能的方法,但目前,我无法仅使用我的CPU处理每小时超过1000只股票。我试着改变功能并尽可能地优化,但这是我能做的最多的事情,并且使用GPU来处理它(这是一次失败的尝试,因为在这方面使用GPU是不可能的。)

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

对于重复加载和比较数据的循环来说,问题是重复的。 该函数将根据所选股票生成最佳相关股票的排名。 任何帮助都将不胜感激,如果我给你们带来了任何问题或担忧,我事先非常抱歉


Tags: 数据函数功能truedfclosestockstart
1条回答
网友
1楼 · 发布于 2024-09-30 16:31:30

这只处理一只股票与所有其他股票的比较,对吗

您正在从雅虎检索所有股票价格,每只股票一次。缓存和重用数据将使运行时间减少100000倍

如果你搜索一下,我也有点信心你也会找到一些torrents或其他历史股票数据存储库。开放数据stackexchange可能有指针,或同名的subreddit

再加上一些不请自来的建议:你不会通过发现股票价格的规律而致富。成千上万的人在这样的模型上工作,可以获得更多的数据、处理能力和博士学位。当价格到达你面前时,所有的“信号”都已经从价格中剥离,留给你的是噪音

相关问题 更多 >