data.get_data_yahoo выдает ошибку на некоторых символах тикера - PullRequest
0 голосов
/ 09 июня 2019

при запуске кода pandas data_reader выдает ошибку на некоторых биржевых символах

при выполнении следующего кода:

import pandas as pd
import pandas_datareader as dr
%matplotlib inline
df = dr.data.get_data_yahoo('FRE.DE',start='2018-10-1', end='2018-11-30')

выдает следующую ошибку:

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
~/miniconda2/envs/py37/lib/python3.7/site-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance)
   2656             try:
-> 2657                 return self._engine.get_loc(key)
   2658             except KeyError:

pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()

pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()

pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()

pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()

KeyError: 'Date'

During handling of the above exception, another exception occurred:

KeyError                                  Traceback (most recent call last)
<ipython-input-17-d55e44b68e87> in <module>
----> 1 df = dr.data.get_data_yahoo('FRE.DE',start='2018-10-1', end='2018-11-30')
      2 df

~/miniconda2/envs/py37/lib/python3.7/site-packages/pandas_datareader/data.py in get_data_yahoo(*args, **kwargs)
     68 
     69 def get_data_yahoo(*args, **kwargs):
---> 70     return YahooDailyReader(*args, **kwargs).read()
     71 
     72 

~/miniconda2/envs/py37/lib/python3.7/site-packages/pandas_datareader/base.py in read(self)
    208         if isinstance(self.symbols, (compat.string_types, int)):
    209             df = self._read_one_data(self.url,
--> 210                                      params=self._get_params(self.symbols))
    211         # Or multiple symbols, (e.g., ['GOOG', 'AAPL', 'MSFT'])
    212         elif isinstance(self.symbols, DataFrame):

~/miniconda2/envs/py37/lib/python3.7/site-packages/pandas_datareader/yahoo/daily.py in _read_one_data(self, url, params)
    140         prices.columns = [col.capitalize() for col in prices.columns]
    141         prices['Date'] = to_datetime(
--> 142             to_datetime(prices['Date'], unit='s').dt.date)
    143 
    144         if 'Data' in prices.columns:

~/miniconda2/envs/py37/lib/python3.7/site-packages/pandas/core/frame.py in __getitem__(self, key)
   2925             if self.columns.nlevels > 1:
   2926                 return self._getitem_multilevel(key)
-> 2927             indexer = self.columns.get_loc(key)
   2928             if is_integer(indexer):
   2929                 indexer = [indexer]

~/miniconda2/envs/py37/lib/python3.7/site-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance)
   2657                 return self._engine.get_loc(key)
   2658             except KeyError:
-> 2659                 return self._engine.get_loc(self._maybe_cast_indexer(key))
   2660         indexer = self.get_indexer([key], method=method, tolerance=tolerance)
   2661         if indexer.ndim > 1 or indexer.size > 1:

pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()

pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()

pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()

pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()

KeyError: 'Date'

приЯ заменяю «FRE.DE» на «FRM.DE», который является другим символом тикера, он отлично работает.

подумав, хм, может быть, данных для символа не существует, я перешел на страницу финансов Yahoo: https://de.finance.yahoo.com/quote/FRE.DE/history?p=FRE.DE

и есть исторические данные, если отображаются.

1 Ответ

0 голосов
/ 09 июня 2019

Для меня ваш код на самом деле работает с FRE.DE, но не работает с FRM.DE.

, что согласуется с тем, что

эта страница: https://de.finance.yahoo.com/quote/FRE.DE найдено

и эта страница: https://de.finance.yahoo.com/quote/FRM.DE не найден

...