pandas datareader plantea AttributeError: el módulo ‘pandas.io’ no tiene atributo ‘datos’

Este es un código que estoy tratando

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 ") 

Me está dando el error de abajo. Hace unos días, no hubo ningún error cuando intenté el mismo código.

 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 "", line 1, in  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  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' 

Estoy usando Anaconda, Python 3.x. ¿Es este un problema con Pandas o algún problema con mi sistema?

pandas ha eliminado esa funcionalidad y ahora se ofrece como un paquete diferente ( enlace ):

DataReader El subpaquete pandas.io.data se elimina en favor de un paquete pandas-datareader que se puede instalar por separado. Esto permitirá que los módulos de datos se actualicen de forma independiente para su instalación de pandas. La API para pandas-datareader v0.1.1 es la misma que en pandas v0.16.1. (GH8961)

Debe reemplazar las importaciones de lo siguiente:

 from pandas.io import data, wb With: from pandas_datareader import data, wb 

Instale pandas_datareader con pip install pandas-datareader y reemplace el código con lo siguiente:

 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)) 

Supongo que has actualizado los pandas a una versión más nueva que ya no es compatible con io.data

Consulte aquí para corregir http://pandas.pydata.org/pandas-docs/stable/remote_data.html

Si lo importa directamente, obtendrá un error de importación más detallado:

 from pandas.io.data import DataReader 

ImportError: el módulo pandas.io.data se mueve a un paquete separado (pandas-datareader). Después de instalar el paquete pandas-datareader ( https://github.com/pydata/pandas-datareader ), puede cambiar la importación from pandas.io import data, wb a from pandas_datareader import data, wb .

Necesitas hacer

 import pandas.io.data as web 

entonces puedes ejecutar fácilmente

 web.DataReader(stuff) 

Además, no olvide import datetime as dt contrario, detectará otra excepción. Además, acabo de llegar tarde 1 s 🙁

Tengo el mismo problema, aquí está la solución:

 pip install pandas_datareader 

Cambie la import pandas.io.data a from pandas_datareader import data, wb

Use data.DataReader() para obtener datos de Internet

actualizado*

buena suerte ~~

Bueno, solo necesitas 2 cosas Primero desinstala la lib –

 pip uninstall pandas-datareader 

Y luego hay que instalarlo usando pip3 (por favor note que es pip3)

 pip3 install pandas-datareader 

Y luego use –

 from pandas_datareader import data, wb #.............. #................ data.DataReader()