SymbolWarning:无法读取替换为 NaN 的符号

SymbolWarning: Failed to read symbol replacing with NaN

我正在尝试使用 pandas 下载所有斯德哥尔摩大盘股的历史股票数据。它工作正常,但对于某些股票却没有。

import pandas_datareader.data as pdr
import datetime
import csv

with open('stockholm_largecap.csv', 'rb') as f:
    reader = csv.reader(f)
    stockholmLargeCap = list(reader)

start = datetime.datetime(1970, 1, 1)
end = datetime.datetime.today();

stockData = {}

for symbol in stockholmLargeCap:
    f = pdr.DataReader(symbol, 'yahoo', start, end)
    print f

stockholm_largecap.csv 包含按字母顺序排列的所有股票,但一旦我到达某些股票,我就会得到(例如 BETS-B.ST):SymbolWarning:无法读取代码:'BETS-B.ST' , 替换为 NaN。并且脚本终止。有什么方法可以继续程序,忽略错误以及某些股票无法正常工作的原因是什么?

raise RemoteDataError(msg.format(self.__class__.__name__))
pandas_datareader._utils.RemoteDataError: No data fetched using 'YahooDailyReader'

使用tryexcept

import pandas_datareader.data as pdr

for symbol in ['SPY', 'holla']:
    try:
        f = pdr.DataReader(symbol, 'yahoo', "2001-01-01", "2010-01-01")
        print f.head(5)
    except:
        print ('did not find: '+symbol)

               Open     High      Low    Close    Volume  Adj Close
Date                                                               
2001-01-02 132.0000 132.1562 127.5625 128.8125   8737500    95.2724
2001-01-03 128.3125 136.0000 127.6562 135.0000  19431600    99.8488
2001-01-04 134.9375 135.4687 133.0000 133.5468   9219000    98.7740
2001-01-05 133.4687 133.6250 129.1875 129.1875  12911400    95.5497
2001-01-08 129.8750 130.1875 127.6875 130.1875   6625300    96.2893
did not find: holla

我在尝试从列表中获取股票时遇到了同样的问题,我使用了异常处理块,它继续执行代码,尽管有符号警告即。[ SymbolWarning:无法读取符号:'AXZZW',替换为 NaN。 warnings.warn(msg.format(sym), SymbolWarning)]

from pandas_datareader._utils import RemoteDataError
from pandas_datareader.data import Options
try:
    df1 = web.DataReader(rows[i],'yahoo',"2001-01-01","2010-01-01")
    print("Downloading",i,"/",len(rows),"............")
    print(df1)
except KeyError:
    print("Data not found at Ticker %s"%i)
    continue
except RemoteDataError:
    print("Data not found at Ticker %s"%i)
    continue
print("Success!")

希望这对你也有用!