从收报机中带有破折号或点的雅虎财经下载数据
Downloading data from yahoo finance with a dash or dot in the ticker
我有这个代码可以从雅虎下载数据:
#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" 的所有股票的列表,这就是我所做的,但它仍然没有显示带点的股票的数据:
def stocksdot(stocks):
stocks_dash = str(stocks).replace('.','-')
stockslist = stocks_dash.split(',')
return stockslist
stocksdot(stocks)
我的预期输出是下载所有股票,即使是那些带有点的股票。任何想法如何规避?
您的问题是雅虎财经不使用“.”。用于跟踪不同 classes 的份额的符号。所以,"BRK.B"和"BR.B"实际上是"BRKB"和"BRB"。
使用 Yahoo Finance python SDK 我制作了一个小脚本来测试 Yahoo Finance 是否可以找到股票代码为 "BRK.B" 或 [=31= 的股票信息].
from yahoo_finance import Share
stock = Share('BRK.B')
print(stock.get_price())
这个结果是:
>>>> None
带点的股票代码用作 shorthand 类型或 class 特定股票。您可以了解更多 here.
要绕过它,您似乎可以删除“.”。例如,当我使用 "BRKB" 而不是 "BRK.B" 时,我得到的结果是:
>>>> 173.05
Berkshire Hathaway class B 股目前的价格是多少。
替换“.”以编程方式使用 Python 的 .replace() 方法。
for stock in stocks:
stock = stock.replace(".", "") # Replaces all "." with "" in the string
# stock
您的问题是雅虎财经不使用“.”。跟踪不同 类 份额的符号。所以,“BRK.B”和“BR.B”实际上是“BRKB”和“BRB”。 --- 我的评论:现在“BRK.B”和“BR.B”实际上是“BRK-B”和“BR-B”。
我有这个代码可以从雅虎下载数据:
#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" 的所有股票的列表,这就是我所做的,但它仍然没有显示带点的股票的数据:
def stocksdot(stocks):
stocks_dash = str(stocks).replace('.','-')
stockslist = stocks_dash.split(',')
return stockslist
stocksdot(stocks)
我的预期输出是下载所有股票,即使是那些带有点的股票。任何想法如何规避?
您的问题是雅虎财经不使用“.”。用于跟踪不同 classes 的份额的符号。所以,"BRK.B"和"BR.B"实际上是"BRKB"和"BRB"。
使用 Yahoo Finance python SDK 我制作了一个小脚本来测试 Yahoo Finance 是否可以找到股票代码为 "BRK.B" 或 [=31= 的股票信息].
from yahoo_finance import Share
stock = Share('BRK.B')
print(stock.get_price())
这个结果是:
>>>> None
带点的股票代码用作 shorthand 类型或 class 特定股票。您可以了解更多 here.
要绕过它,您似乎可以删除“.”。例如,当我使用 "BRKB" 而不是 "BRK.B" 时,我得到的结果是:
>>>> 173.05
Berkshire Hathaway class B 股目前的价格是多少。
替换“.”以编程方式使用 Python 的 .replace() 方法。
for stock in stocks:
stock = stock.replace(".", "") # Replaces all "." with "" in the string
# stock
您的问题是雅虎财经不使用“.”。跟踪不同 类 份额的符号。所以,“BRK.B”和“BR.B”实际上是“BRKB”和“BRB”。 --- 我的评论:现在“BRK.B”和“BR.B”实际上是“BRK-B”和“BR-B”。