pandas datareader引发AttributeError:模块'pandas.io'没有属性'data'

发布于 2021-01-29 17:26:58

这是我正在尝试的代码

import matplotlib.pyplot as plt    
import pandas as pd
ticker = 'GLD'
begdate = '2014-11-11'
enddate = '2016-11-11'
data1 = pd.io.data.DataReader(ticker,'yahoo',dt.datetime(2014,11,11),dt.datetime(2016,11,11))
gld_df = pd.DataFrame(data1)
date_df = pd.to_datetime(list(gld_df.index))
adj_close_df = list(gld_df["Adj Close"])
plt.plot(date_df,adj_close_df)
plt.title("SPDR Gold Shares ")

它给了我下面的错误。几天前,当我尝试相同的代码时没有错误。

runfile('D:/Quant/MSQF/4 - Algorithms 1/3-Sorting/Mini Project 2_v2.py', wdir='D:/Quant/MSQF/4 - Algorithms 1/3-Sorting')
Traceback (most recent call last):

  File "<ipython-input-10-db75eb5622f8>", line 1, in <module>
    runfile('D:/Quant/MSQF/4 - Algorithms 1/3-Sorting/Mini Project 2_v2.py', wdir='D:/Quant/MSQF/4 - Algorithms 1/3-Sorting')

  File "D:\Anaconda\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 714, in runfile
    execfile(filename, namespace)

  File "D:\Anaconda\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 89, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "D:/Quant/MSQF/4 - Algorithms 1/3-Sorting/Mini Project 2_v2.py", line 18, in <module>
    data1 = pd.io.data.DataReader(ticker,'yahoo',dt.datetime(2014,11,11),dt.datetime(2016,11,11))

AttributeError: module 'pandas.io' has no attribute 'data'

我正在使用Anaconda,Python 3.x。这是熊猫问题还是我的系统问题?

关注者
0
被浏览
169
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    pandas删除了该功能,现在将其作为其他软件包提供(link):

    DataReader删除了子软件包pandas.io.data,转而使用了可单独安装的pandas-
    datareader软件包。这将允许将数据模块独立更新到您的pandas安装。pandas-datareader v0.1.1的API与pandas
    v0.16.1中的API相同。(GH8961)

    您应该替换以下内容的导入:

    from pandas.io import data, wb
    

    具有以下内容:

    from pandas_datareader import data, wb
    

    安装pandas_datareaderpip install pandas-datareader
    并替换为以下代码:

    from pandas_datareader import data
    import datetime as dt
    ticker = 'GLD'
    begdate = '2014-11-11'
    enddate = '2016-11-11'
    data1 = data.DataReader(ticker,'yahoo',dt.datetime(2014,11,11),dt.datetime(2016,11,11))
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看