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

问题描述 投票:4回答:6

这是我正在尝试的代码

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.这是Pandas的问题还是我系统的一些问题?

python pandas
6个回答
8
投票

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 With:

from pandas_datareader import data, wb

使用pandas_datareader安装pip 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))

0
投票

我的猜测是你将熊猫更新为不再支持io.data的新版本

看到这里修复http://pandas.pydata.org/pandas-docs/stable/remote_data.html


0
投票

如果直接导入它,则会得到更详细的导入错误:

from pandas.io.data import DataReader

ImportError:将pandas.io.data模块移动到单独的包(pandas-datareader)。安装pandas-datareader软件包(https://github.com/pydata/pandas-datareader)后,您可以将导入from pandas.io import data, wb更改为from pandas_datareader import data, wb


0
投票

你需要这样做

import pandas.io.data as web

然后你就可以轻松执行了

web.DataReader(stuff)

此外,不要忘记import datetime as dt否则你会发现另一个例外。另外,我刚迟到1秒:(


0
投票

我有同样的问题,这是解决方案:

pip install pandas_datareader

import pandas.io.data改为from pandas_datareader import data, wb

使用data.DataReader()从Internet获取数据

更新*

祝你好运~~


0
投票

好吧,你只需要2件事首先卸载lib -

pip uninstall pandas-datareader

然后需要使用pip3安装它(请注意它是pip3)

pip3 install pandas-datareader

然后使用 -

from pandas_datareader import data, wb
#..............

#................
data.DataReader()
© www.soinside.com 2019 - 2024. All rights reserved.