python和fix_yahoo_finance库导致ValueError

时间:2018-07-13 01:58:41

标签: python pandas yahoo-finance

编辑

>请参阅下面有关如何使它工作的答案。

我在使用fix_yahoo_finance库(版本0.0.22)时遇到问题。 为我指明正确方向的任何帮助都会很棒。

我的目标是加载库存数据。目前,fix_yahoo_finance返回一个熊猫数据框,对我来说非常有用。

这是我正在使用的代码:

import datetime
import psycopg2
import fix_yahoo_finance as yf
import pandas as pd

start_dt = datetime.datetime(2004,12,30)
end_dt = datetime.datetime(2017,12,01)
symbol = 'MMM'
yf.pdr_override()

data = yf.download(symbol, start='2004-12-30', end='2017-12-01')

这是错误

Traceback (most recent call last):

  File "<ipython-input-38-d43dee1dd457>", line 1, in <module>
    data = yf.download(symbol, start=start_dt, end=end_dt)

  File "C:\Python27\Lib\site-packages\fix_yahoo_finance\__init__.py", line 
194, in download
data = _pd.concat(_DFS.values(), axis=1, keys=_DFS.keys())

  File "C:\Python27\Lib\site-packages\pandas\tools\merge.py", line 754, in 
concat
    copy=copy)

  File "C:\Python27\Lib\site-packages\pandas\tools\merge.py", line 799, in 
__init__
    raise ValueError('All objects passed were None')

ValueError: All objects passed were None

2 个答案:

答案 0 :(得分:0)

您可以尝试使用pandas-datareader库,如下所示:

from pandas_datareader import data as pdr

import fix_yahoo_finance as yf
yf.pdr_override()
data = pdr.get_data_yahoo("MMM", start="2004-12-30", end="2017-12-01")

您可以查看此GitHub Repo,以获取有关参数的更多详细信息。希望这可以帮助!

答案 1 :(得分:0)

不幸的是,@ Yash Ghandhe的回答对我没有用。

我确实通过安装Anaconda并从那里运行Spyder IDE来使其工作。我安装了Python 3.6版本(以前使用的是Python 2.7)。

我仍然不确定是哪个库导致了该问题,或者不确定是否使用Python 3。

阅读fix-yahoo-finance库的文档(链接到https://pypi.org/project/fix-yahoo-finance/)显示了两条相互冲突的信息。

第一个位于标题下方。它显示了Python 2.7、3.4、3.5、3.6。 在下面的要求下,它还提到了Python> = 3.4。