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

import bs4 as bs

import datetime as dt

import os

import pandas as pd

import pandas_datareader.data as web

import pickle

import requests



def 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 不存在”,但它首先没有在本地导入/存储,所以为什么这是一个问题?底部的完整错误


手掌心
浏览 77回答 1
1回答

Smart猫小萌

就在错误发生之前,调用了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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python