как перебрать длинный список используя Yahoo! - PullRequest
0 голосов
/ 07 октября 2018

обновление - проблема ниже была вызвана неправильным символом тикера в списке.


нижеприведенная программа будет перебирать только список тикеров "X", после чего будет отображаться приведенная ниже трассировка.Я попытался использовать необязательные параметры «retry_count» и «pause» в вызове функции «yf», но они не помогают.есть идеи?

ввод:

import pandas as pd
import numpy as np
import datetime
pd.core.common.is_list_like = pd.api.types.is_list_like # temp fix
import fix_yahoo_finance as yf
from pandas_datareader import data, wb
from datetime import date

ticker_list = ['AES', 'CNP', 'COG', 'CTL', 'DLPH', 'DO', 'DRE', 'F', 'FCX', 'FITB', 'FOSL', 'FTR', 'GE', 'GPS', 'GT', 'HBAN', 'HBI', 'HCP', 'HPE', 'HPQ', 'HRB', 'HST', 'IPG', 'IVZ', 'JEF', 'JNPR', 'KEY', 'KIM', 'KMI', 'KR', 'LB', 'MAT', 'MGM', 'MRO', 'NFX', 'NI', 'NLSN', 'NWL', 'NWS', 'NWSA', 'OI', 'PBCT', 'PHM', 'RF', 'SWN', 'SYMC', 'TWTR', 'UA', 'UAA', 'WMB', 'WU', 'XRX', 'ACAD', 'ACGL', 'ACGLO', 'ACGLP', 'ACIW', 'AFSI', 'AGNC', 'AGNCB', 'AGNCN', 'AMD', 'AMRN', 'ANGI', 'ARCC', 'ARLP', 'ARRS', 'ARRY', 'AY', 'BATRA', 'BGCP', 'BILI', 'BPR', 'BPY', 'CDEV', 'CG', 'COMM', 'CRZO', 'CSFL', 'CSQ', 'CVBF', 'CY', 'CZR', 'DBX', 'EBAYL', 'ENDP', 'ENTG', 'ERIC', 'EVOP', 'EXEL', 'FEYE', 'FFBC', 'FHB', 'FITB', 'FLEX', 'FMBI', 'FNSR', 'FOLD', 'FULT', 'GDS', 'GGAL', 'GLIBP', 'GLNG', 'GNTX', 'GRFS', 'GRPN', 'GSKY', 'GT', 'HAIN', 'HALO', 'HBAN', 'HDP', 'HOMB', 'HOPE', 'HPT', 'HTHT', 'HZNP', 'IMMP', 'IMMU', 'IQ', 'IRDM', 'IRWD', 'ISBC', 'JBLU', 'JD', 'LAUR', 'LBTYA', 'LBTYK', 'LILA', 'LILAK', 'MAT', 'MDCO', 'MDRX', 'MIK', 'MLCO', 'MMYT', 'MRVL', 'MTFB', 'NAVI', 'NGHHCO', 'NGHCP', 'NTRSP', 'NUAN', 'NVCN', 'NWSA', 'NYMTN', 'NYMTO', 'NYMTP', 'ON', 'ONB', 'PAAS', 'PBCT', 'PDCO', 'PDD', 'PLLL', 'PPC', 'PS', 'PSEC', 'PTEN', 'QRTEA', 'QTT', 'ROIC', 'RRR', 'SABR', 'SBGI', 'SBRA', 'SFIX', 'SFM', 'SFNC', 'SGMS', 'SIRI', 'SLGN', 'SLM', 'SNDE', 'SNH', 'STAY', 'SYMC', 'TELL', 'TERP', 'TFSL', 'TSEM', 'TSG', 'UCBI', 'UMPQ', 'UNIT', 'VEON', 'VIAV', 'VIRT', 'VOD', 'WEN', 'WMGI', 'ZNGA']

for ticker in ticker_list:
    df = yf.download(ticker, start = date (2012, 1, 1), end = (2018, 8, 1), progress = False)
    print ('df for ' + ticker)

вывод:

df for AES
df for CNP
...
df for NAVI
Traceback (most recent call last):
  File "C:\stocks\question for stack overflow 12.py", line 14, in <module>
    df = yf.download(ticker, start = date (2012, 1, 1), end = today, progress = False)
  File "C:\Users\david\Anaconda3\lib\site-packages\fix_yahoo_finance\__init__.py", line 202, in download
'Close', 'Adj Close', 'Volume']]
  File "C:\Users\david\Anaconda3\lib\site-packages\pandas\core\frame.py", line 2679, in __getitem__
    return self._getitem_array(key)
  File "C:\Users\david\Anaconda3\lib\site-packages\pandas\core\frame.py", line 2723, in _getitem_array
    indexer = self.loc._convert_to_indexer(key, axis=1)
  File "C:\Users\david\Anaconda3\lib\site-packages\pandas\core\indexing.py", line 1308, in _convert_to_indexer
obj, kind=self.name)
 File "C:\Users\david\Anaconda3\lib\site-packages\pandas\core\indexes\multi.py", line 1995, in _convert_listlike_indexer
_, indexer = self.reindex(keyarr, level=level)
  File "C:\Users\david\Anaconda3\lib\site-packages\pandas\core\indexes\multi.py", line 2084, in reindex
keep_order=False)
  File "C:\Users\david\Anaconda3\lib\site-packages\pandas\core\indexes\base.py", line 3952, in _join_level
ngroups = 1 + new_lev_labels.max()
  File "C:\Users\david\Anaconda3\lib\site-packages\numpy\core\_methods.py", line 26, in _amax
    return umr_maximum(a, axis, None, out, keepdims)

   ValueError: zero-size array to reduction operation maximum which has no identity
...