Closed
Description
The code below works for over 500 symbols but doesn't work for ^ndx.
In [1]: from pandas_datareader import data as pddata
In [2]: foo = pddata.Options('^ndx', 'yahoo')
In [3]: foo.expiry_dates
Out[3]:
[datetime.date(2016, 3, 18),
datetime.date(2016, 3, 24),
datetime.date(2016, 4, 1),
datetime.date(2016, 4, 8),
datetime.date(2016, 4, 15),
datetime.date(2016, 4, 22),
datetime.date(2016, 4, 29),
datetime.date(2016, 5, 20),
datetime.date(2016, 6, 17),
datetime.date(2016, 9, 16),
datetime.date(2016, 12, 16),
datetime.date(2017, 6, 16),
datetime.date(2017, 12, 15),
datetime.date(2018, 12, 21)]
In [4]: for d in foo.expiry_dates:
print(d)
foo.get_options_data(expiry=d)
...:
2016-03-18
2016-03-24
2016-04-01
2016-04-08
2016-04-15
2016-04-22
2016-04-29
2016-05-20
2016-06-17
2016-09-16
2016-12-16
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-5-dad98abfb543> in <module>()
1 for d in foo.expiry_dates:
2 print d
----> 3 foo.get_options_data(expiry=d)
4
/Users/v/virtenvs/ns/lib/python2.7/site-packages/pandas_datareader/yahoo/options.pyc in get_options_data(self, month, year, expiry)
146 return concat([f(month, year, expiry)
147 for f in (self.get_put_data,
--> 148 self.get_call_data)]).sortlevel()
149
150 def _get_option_frames_from_yahoo(self, expiry):
/Users/v/virtenvs/ns/lib/python2.7/site-packages/pandas_datareader/yahoo/options.pyc in get_put_data(self, month, year, expiry)
360 """
361 expiry = self._try_parse_dates(year, month, expiry)
--> 362 return self._get_data_in_date_range(expiry, put=True, call=False)
363
364 def get_near_stock_price(self, above_below=2, call=True, put=False,
/Users/v/virtenvs/ns/lib/python2.7/site-packages/pandas_datareader/yahoo/options.pyc in _get_data_in_date_range(self, dates, call, put)
606 frame = getattr(self, nam)
607 except AttributeError:
--> 608 frame = self._get_option_data(expiry=expiry_date, name=name)
609 data.append(frame)
610
/Users/v/virtenvs/ns/lib/python2.7/site-packages/pandas_datareader/yahoo/options.pyc in _get_option_data(self, expiry, name)
229 frames = getattr(self, frame_name)
230 except AttributeError:
--> 231 frames = self._get_option_frames_from_yahoo(expiry)
232
233 option_data = frames[name]
/Users/v/virtenvs/ns/lib/python2.7/site-packages/pandas_datareader/yahoo/options.pyc in _get_option_frames_from_yahoo(self, expiry)
150 def _get_option_frames_from_yahoo(self, expiry):
151 url = self._yahoo_url_from_expiry(expiry)
--> 152 option_frames = self._option_frames_from_url(url)
153 frame_name = '_frames' + self._expiry_to_string(expiry)
154 setattr(self, frame_name, option_frames)
/Users/v/virtenvs/ns/lib/python2.7/site-packages/pandas_datareader/yahoo/options.pyc in _option_frames_from_url(self, url)
173
174 root = self._parse_url(url)
--> 175 calls = root.xpath('//*[@id="optionsCallsTable"]/div[2]/div/table')[0]
176 puts = root.xpath('//*[@id="optionsPutsTable"]/div[2]/div/table')[0]
177
IndexError: list index out of range
In [9]: import pandas_datareader
In [10]: pandas_datareader.version
Out[10]: '0.2.1'
Metadata
Metadata
Assignees
Labels
No labels