2

I am trying to gather stock data from Alpha Vantage but I keep getting an error? I am using Alpha Vantage to extract the data. My code is below:

import pandas_datareader.data as web
import pandas as pd
import numpy as np
import datetime

start = datetime.datetime(2006,1,1)
end = datetime.datetime(2016,1,1)
BAC = web.DataReader('BAC', 'av-daily', start, end,api_key='****')
C = web.DataReader('C', 'av-daily', start, end,api_key='****')
GS = web.DataReader('GS', 'av-daily', start, end,api_key='****')
JPM = web.DataReader('JPM', 'av-daily', start, end,api_key='****')
MS = web.DataReader('MS', 'av-daily', start, end,api_key='****')
WFC = web.DataReader('WFC', 'av-daily', start, end,api_key='****')

where the asterisks denote my API key from Alpha Vantage. When I run this, I get the following error:

KeyError                                  Traceback (most recent call last)
~\Anaconda3\lib\site-packages\pandas_datareader\av\__init__.py in _read_lines(self, out)
     71         try:
---> 72             df = pd.DataFrame.from_dict(out[self.data_key], orient="index")
     73         except KeyError:

KeyError: 'Time Series (Daily)'

During handling of the above exception, another exception occurred:

RemoteDataError                           Traceback (most recent call last)
<ipython-input-37-4c470c35e03d> in <module>
      3 BAC = web.DataReader('BAC', 'av-daily', start, end,api_key='JLUM6QNSDCL3OHTU')
      4 C = web.DataReader('C', 'av-daily', start, end,api_key='JLUM6QNSDCL3OHTU')
----> 5 GS = web.DataReader('GS', 'av-daily', start, end,api_key='JLUM6QNSDCL3OHTU')
      6 JPM = web.DataReader('JPM', 'av-daily', start, end,api_key='JLUM6QNSDCL3OHTU')
      7 MS = web.DataReader('MS', 'av-daily', start, end,api_key='JLUM6QNSDCL3OHTU')

~\Anaconda3\lib\site-packages\pandas\util\_decorators.py in wrapper(*args, **kwargs)
    206                 else:
    207                     kwargs[new_arg_name] = new_arg_value
--> 208             return func(*args, **kwargs)
    209 
    210         return wrapper

~\Anaconda3\lib\site-packages\pandas_datareader\data.py in DataReader(name, data_source, start, end, retry_count, pause, session, api_key)
    577             pause=pause,
    578             session=session,
--> 579             api_key=api_key,
    580         ).read()
    581 

~\Anaconda3\lib\site-packages\pandas_datareader\base.py in read(self)
     98         """Read data from connector"""
     99         try:
--> 100             return self._read_one_data(self.url, self.params)
    101         finally:
    102             self.close()

~\Anaconda3\lib\site-packages\pandas_datareader\base.py in _read_one_data(self, url, params)
    110         else:
    111             raise NotImplementedError(self._format)
--> 112         return self._read_lines(out)
    113 
    114     def _read_url_as_StringIO(self, url, params=None):

~\Anaconda3\lib\site-packages\pandas_datareader\av\time_series.py in _read_lines(self, out)
    103 
    104     def _read_lines(self, out):
--> 105         data = super(AVTimeSeriesReader, self)._read_lines(out)
    106         # reverse since alphavantage returns descending by date
    107         data = data[::-1]

~\Anaconda3\lib\site-packages\pandas_datareader\av\__init__.py in _read_lines(self, out)
     79                 )
     80             else:
---> 81                 raise RemoteDataError()
     82         df = df[sorted(df.columns)]
     83         df.columns = [id[3:] for id in df.columns]

RemoteDataError: 

Does anyone know what this means? Sometimes I get this error and other times I don't? I'll run the cell and it'll be fine, if I run it a few minutes later it sometimes gives me this error?

the man
  • 1,131
  • 1
  • 8
  • 19

1 Answers1

2

The RemoteDataError() is raised when there is an error from the data vendor, in this case, it looks like you're using a standard API key. To quote the site, the standard keys have a threshold of:

up to 5 API requests per minute and 500 requests per day to achieve the best server-side performance. If you would like to target a larger API call volume, please visit premium membership.

So that's why it only works sometimes, you're hitting the rate limit on the free key.

Patrick Collins
  • 5,621
  • 3
  • 26
  • 64