首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >yfinance作为pandas_finance的替代方案

yfinance作为pandas_finance的替代方案
EN

Stack Overflow用户
提问于 2021-07-20 02:20:18
回答 1查看 72关注 0票数 0

在雅虎2021年年中做出改变后,希望使用yfinance作为pandas_finance的替代方案来获取股票信息(行业、行业、个人资料)。我有一个大约50-100个股票代码(unchecked_tickers)的列表,我希望循环通过这些列表来获得行业、行业和个人资料。这是我当前的代码,对于pandas_finance来说相对较快,但对于yfinance来说需要几个小时:

代码语言:javascript
运行
复制
sector = []

for i in range(len(unchecked_tickers)):
        try: 
            sec_data = yf.Ticker(unchecked_tickers[i]).info['sector']
            sector.append(sec_data)
        except:
            sector.append('0')

unchecked_earnings_df["Sector"] = sector

industry = []

for i in range(len(unchecked_tickers)):
        try: 
            ind_data = yf.Ticker(unchecked_tickers[i]).info['industry']
            industry.append(ind_data)
        except:
            industry.append('0')

unchecked_earnings_df["Industry"] = industry

desc = []

for i in range(len(unchecked_tickers)):
        try: 
            desc_data = yf.Ticker(unchecked_tickers[i]).info['longBusinessSummary']
            desc.append(desc_data)
        except:
            desc.append('0')

unchecked_earnings_df["Desc"] = desc

unchecked_earnings_df.head()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-20 04:55:38

每个yf.Ticker(“股票报价器”)函数调用都会向存储股票数据的服务器发送一个请求。如果您多次执行此请求,则可能需要一段时间。在某些情况下,获取响应所需的时间会变得更长,这可能是由服务器引起的,因为服务器不希望你在这么短的时间内发送许多请求,但我不确定这是否是真正的原因。您甚至可以证明,当您测量每个yf.Ticker()函数调用前后的时间并打印差值时。要解决响应时间过长的问题,你无能为力。但是您的代码中有很多可以改进的地方。主要的问题是,你有3个不同的for循环,它们都执行相同的迭代,并且都在开始时执行相同的yf.Ticker(‘股票报价器’)函数调用,这是花费时间最多的函数。为了提高性能,您可以在一个for循环中执行这三个for循环中的所有操作,并在每次迭代中只调用一次yf.Ticker()函数。就像这样:

代码语言:javascript
运行
复制
for i in range(len(unchecked_tickers)):
    try: 
        ticker = yf.Ticker(unchecked_tickers[i])
        sector.append(ticker.info['sector'])
        industry.append(ticker.info['industry'])
        #.....
    except:
        sector.append('0')
        industry.append('0')
        #.....

这样,你只需要为每个滚动条调用一次yf.Ticker()函数,而不是三次,这将使你的程序速度提高三倍。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68445273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档