为了账号安全,请及时绑定邮箱和手机立即绑定

FileNotFoundError: [Errno 2] 文件 stock_dfs/BRK.B

FileNotFoundError: [Errno 2] 文件 stock_dfs/BRK.B

手掌心 2022-12-20 09:31:22
import bs4 as bsimport datetime as dtimport osimport pandas as pdimport pandas_datareader.data as webimport pickleimport requestsdef save_sp500_tickers():resp = requests.get('http://en.wikipedia.org/wiki/List_of_S%26P_500_companies')soup = bs.BeautifulSoup(resp.text, 'lxml')table = soup.find('table', {'class': 'wikitable sortable'})tickers = []for row in table.findAll('tr')[1:]:    ticker = row.findAll('td')[0].text    tickers.append(ticker)with open("sp500tickers.pickle", "wb") as f:    pickle.dump(tickers, f)return tickers # save_sp500_tickers()def get_data_from_yahoo(reload_sp500=False):if reload_sp500:    tickers = save_sp500_tickers()else:    with open("sp500tickers.pickle", "rb") as f:        tickers = pickle.load(f)if not os.path.exists('stock_dfs'):    os.makedirs('stock_dfs')start = dt.datetime(2010, 1, 1)end = dt.datetime.now()for ticker in tickers:    # just in case your connection breaks, we'd like to save our progress!    if not os.path.exists('stock_dfs/{}.csv'.format(ticker)):        df = web.DataReader(ticker, 'yahoo', start, end)        df.reset_index(inplace=True)        df.set_index("Date", inplace=True)        df = df.drop("Symbol", axis=1)        df.to_csv('stock_dfs/{}.csv'.format(ticker))    else:        print('Already have {}'.format(ticker))def compile_data():with open("sp500tickers.pickle", "rb") as f:    tickers = pickle.load(f)main_df = pd.DataFrame()for count, ticker in enumerate(tickers):    df = pd.read_csv('stock_dfs/{}.csv'.format(ticker))此处发生错误,它指出“文件 stock_dfs/BRK.B.csv 不存在”,但它首先没有在本地导入/存储,所以为什么这是一个问题?底部的完整错误
查看完整描述

1 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

就在错误发生之前,调用了pd.read_csv():


for count, ticker in enumerate(tickers):

    df = pd.read_csv('stock_dfs/{}.csv'.format(ticker))

当ticker是'BRK.B'并且程序尝试设置从中读取数据时会发生错误'stocks_dfs/BRK.B.csv'。


错误信息是说你的机器上没有stocks_dfs/BRK.B.csv文件。这令人费解,因为这段代码应该已经下载了所有必要的文件:


for ticker in tickers:

    # just in case your connection breaks, we'd like to save our progress!

    if not os.path.exists('stock_dfs/{}.csv'.format(ticker)):

        df = web.DataReader(ticker, 'yahoo', start, end)

        df.reset_index(inplace=True)

        df.set_index("Date", inplace=True)

        df = df.drop("Symbol", axis=1)

        df.to_csv('stock_dfs/{}.csv'.format(ticker))

    else:

        print('Already have {}'.format(ticker))

确保在运行读取代码(顶部)的同一目录中运行下载代码(正上方)。要进行快速检查,请查看您的工作目录中是否存在名为的文件夹。该文件夹应包含、和特别是.stock_dfs/GOOGL.csvFB.csvBRK.B.csv


查看完整回答
反对 回复 2022-12-20
  • 1 回答
  • 0 关注
  • 76 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信