首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫阻止我下载我不想要的文件

熊猫阻止我下载我不想要的文件
EN

Stack Overflow用户
提问于 2019-08-28 04:59:48
回答 1查看 73关注 0票数 1

所以我正在学习金融和matplotlib,我想下载20个.csv文件,每个文件都有一些数据。问题是,当我执行代码时,终端打印出一个巨大的错误。

到目前为止,我已经尝试更改代码,尝试从.pickle文件中删除MSTAR,即使MSTAR甚至不在.pickle文件中,我也尝试在Github上四处询问,仍然一无所获,我甚至在堆栈溢出时查找它,也没有起作用

当我运行以下命令时,似乎发生了错误

代码语言:javascript
复制
def get_data_from_yahoo(reload_sp500=False):
    if reload_sp500:
        tickers = save_sp500_tickers()
    else:
        with open("sp500tickers.pickle", "rb") as f:
            tickers = pickle.load(f)
    if not os.path.exists('stock_dfs'):
        os.makedirs('stock_dfs')

    start = dt.datetime(2010, 1, 1)
    end = dt.datetime.now()
    for ticker in tickers[:20]:

        if not os.path.exists('stock_dfs/{}.csv'.format(ticker)):
            df = web.DataReader(ticker, 'morningstar', start, end)
            df.reset_index(inplace=True)
            df.set_index("Date", inplace=True)
            df = df.drop("Symbol", axis=1)
            df.to_csv('stock_dfs/{}.csv'.format(ticker))
        else:
            print('Already have {}'.format(ticker))

get_data_from_yahoo()

我本以为会有一个装满.csv文件的文件夹,每个文件都有自己的数据,但我得到了一个错误,告诉我以下内容:

代码语言:javascript
复制
Traceback (most recent call last):
  File "C:\Users\chedl\Documents\Programs\Python\financing\python-for-financing.py", line 46, in <module>
    get_data_from_yahoo()
  File "C:\Users\chedl\Documents\Programs\Python\financing\python-for-financing.py", line 37, in get_data_from_yahoo
    df = web.DataReader(ticker, 'morningstar', start, end)
  File "C:\Users\chedl\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\pandas_datareader\data.py", line 387, in DataReader
    session=session, interval="d").read()
  File "C:\Users\chedl\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\pandas_datareader\mstar\daily.py", line 57, in __init__
    raise ImmediateDeprecationError(DEP_ERROR_MSG.format("Morningstar"))
pandas_datareader.exceptions.ImmediateDeprecationError:
Morningstar has been immediately deprecated due to large breaks in the API without the
introduction of a stable replacement. Pull Requests to re-enable these data
connectors are welcome.

如果你不理解这个错误,它要求一个特定的数据集,即使我不需要它,它试图下载那个数据集,然后它抱怨应用程序接口中的一些中断,即使我从来不需要这个文件,而且它从.pickle文件中获取名称,好吧,它没有写在那个.pickle文件中的morningstar或MSTAR。

EN

回答 1

Stack Overflow用户

发布于 2019-08-28 06:40:50

看起来您在代码中专门请求来自Morningstar的数据:

df = web.DataReader(ticker, 'morningstar', start, end)

雅虎财经有时很难与之合作。我发现Quandl更容易使用,也更可靠。您可以注册免费的here,这将允许您访问API密钥。他们还有一个python库,你可以通过pip安装,然后导入到你的文件中。从那里,只需将对Yahoo Finance的调用替换为对Quandl的调用。

代码语言:javascript
复制
    if not os.path.exists('stock_dfs/{}.csv'.format(ticker)):
        quandl.ApiConfig.api_key = "YOUR API KEY"
        df = quandl.get(ticker, start_date=start, end_date=end)
        df.reset_index(inplace=True)
        df.set_index("Date", inplace=True)
        df = df.drop("Symbol", axis=1)
        df.to_csv('stock_dfs/{}.csv'.format(ticker))
    else:
        print('Already have {}'.format(ticker))

Quandl here文档

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

https://stackoverflow.com/questions/57682204

复制
相关文章

相似问题

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