首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >正在从雅虎财经下载数据,并在报价器中添加破折号或圆点

正在从雅虎财经下载数据,并在报价器中添加破折号或圆点
EN

Stack Overflow用户
提问于 2017-07-29 01:21:39
回答 2查看 1K关注 0票数 1

我有从yahoo下载数据的代码:

代码语言:javascript
运行
复制
#gets data from yahoo finance
stocks = list(newmerge.index)
start = dt.datetime(2012,1,1)
end = dt.datetime.today()

yahoodata = pdr.get_data_yahoo(stocks,start,end)
cleanData = yahoodata.loc['Adj Close']
dataFrame = pd.DataFrame(cleanData, columns=stocks)

它运行良好,但我最近注意到一个问题,它不能下载股票"BRK.B“和"BR.B”的数据。

我有一个名为" stocks“的所有股票的列表,下面是我所做的,但它仍然没有显示其中带点的股票的数据:

代码语言:javascript
运行
复制
def stocksdot(stocks):
stocks_dash = str(stocks).replace('.','-')
stockslist = stocks_dash.split(',')
return stockslist

stocksdot(stocks)

我的预期输出将是下载所有股票,甚至是那些带圆点的股票。有什么办法可以规避吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-29 01:48:13

你的问题是雅虎财经没有使用“。跟踪不同类别的股票的符号。因此,"BRK.B“和"BR.B”实际上是"BRKB“和"BRB”。

使用雅虎财经的python SDK,我编写了一个小脚本来测试雅虎财经是否可以找到带有"BR.B“或”br.b“的股票的信息。

代码语言:javascript
运行
复制
from yahoo_finance import Share

stock = Share('BRK.B')
print(stock.get_price())

这个结果是:

代码语言:javascript
运行
复制
>>>> None

带点的股票报价器被用作特定股票的类型或类别的简写。您可以了解更多here

要绕过它,您可以删除".“。例如,当我使用"BRKB“而不是"BRK.B”时,我得到的结果是:

代码语言:javascript
运行
复制
>>>> 173.05

这是伯克希尔哈撒韦公司B类股票的当前价格。

替换".“以编程方式使用Python的.replace()方法。

代码语言:javascript
运行
复制
for stock in stocks:
    stock = stock.replace(".", "")  # Replaces all "." with "" in the string 
                                # stock 
票数 1
EN

Stack Overflow用户

发布于 2020-08-11 00:10:10

你的问题是雅虎财经没有使用“。跟踪不同类别的股票的符号。因此,"BRK.B“和"BR.B”实际上是"BRKB“和"BRB”。-我的评论:现在"BRK.B“和"BR.B”实际上是"BRK-B“和"BR-B”。

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

https://stackoverflow.com/questions/45379155

复制
相关文章

相似问题

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