pandas_datareader 在从 Yahoo 获取股票拆分时出错

Posted

技术标签:

【中文标题】pandas_datareader 在从 Yahoo 获取股票拆分时出错【英文标题】:pandas_datareader error at getting stock splits from Yahoo 【发布时间】:2020-04-16 09:26:52 【问题描述】:

我正在尝试从雅虎获取股市数据。 获取股票价格和股息我没有问题,但一旦涉及拆分,我就会出错。

例如“可口可乐”库存('KO')

from pandas_datareader import data

start_date = '2000-01-01'
end_date = '2020-12-31'

a = data.DataReader('KO', 'yahoo-actions', start_date, end_date) 

我收到一个错误(我认为是指 2:1 股票分割):

File "<string>", line 1
    2:1
     ^
SyntaxError: invalid syntax

如果我在没有拆分的股票(即“TSLA”)上运行相同的代码,它运行没有问题。 我试着把它变成一个字符串,但没有成功。

我没有想法,在网上找不到类似的问题。 有人知道可能出了什么问题吗?

【问题讨论】:

您可以尝试一个名为yahooquery 的包,特别是Ticket 类的history 方法。生成的数据框将包含股票拆分(如果有的话)。 【参考方案1】:

已解决:

在“pandas_datareader”库中的“daily.py”文件中,我进行了更改:

if "SPLIT" in types: def split_ratio(row): if float(row["Numerator"]) > 0: return eval(row["Splitratio"]) else: return 1

到:

if "SPLIT" in types: def split_ratio(row): if float(row["Numerator"]) > 0: return row["Splitratio"] else: return 1

现在它可以在本地工作,但我不能在 colab 上使用它。

现在已经足够了。

【讨论】:

以上是关于pandas_datareader 在从 Yahoo 获取股票拆分时出错的主要内容,如果未能解决你的问题,请参考以下文章

没有名为 pandas_datareader 的模块

Ruby gsub 不会转义单引号

无法使用 pandas_datareader 从雅虎获取股票数据

pandas_datareader.data 不返回从开始到结束日期的所有股票值

导入 pandas_datareader 时遇到问题

pandas_datareader下载雅虎财经股价数据