Python 数据读取器故障

Python 数据读取器故障,python,pandas,Python,Pandas,我想把所有的股票从sp500到一个csv格式的文件夹 现在,当扫描sp500指数时,一切都很好,但在某些情况下,由于股票不存在或在特定时间内没有日期,所以似乎缺少日期索引,无论我试图改变startdate和enddate,但都没有效果-在早期的文章中,我被说会过滤这些日期,但有一个例外,但由于python是我的新天地,我就像一个外星人。。。有人能帮我吗 如果发生此错误: /home/mu351i/PycharmProjects/untitled/venv/bin/python/home/mu35

我想把所有的股票从sp500到一个csv格式的文件夹

现在,当扫描sp500指数时,一切都很好,但在某些情况下,由于股票不存在或在特定时间内没有日期,所以似乎缺少日期索引,无论我试图改变startdate和enddate,但都没有效果-在早期的文章中,我被说会过滤这些日期,但有一个例外,但由于python是我的新天地,我就像一个外星人。。。有人能帮我吗

如果发生此错误:

/home/mu351i/PycharmProjects/untitled/venv/bin/python/home/mu351i/PycharmProjects/untitled/get\u sp500\u beautifulsou\u intro.py 回溯(最近一次呼叫最后一次):
文件“/home/mu351i/PycharmProjects/untitled/venv/lib/python3.7/site packages/pandas/core/index/base.py”,第2897行,在get_loc
返回自身。\引擎。获取位置(键)
文件“pandas/_libs/index.pyx”,第107行,在pandas._libs.index.IndexEngine.get_loc
pandas.\u libs.index.IndexEngine.get\u loc中的文件“pandas/\u libs/index.pyx”,第131行 文件“pandas/_libs/hashtable_class_helper.pxi”,第1607行,在pandas._libs.hashtable.PyObjectHashTable.get_项中
文件“pandas/_libs/hashtable_class_helper.pxi”,第1614行,在pandas._libs.hashtable.PyObjectHashTable.get_项中

KeyError:“日期”

在处理上述异常期间,发生了另一个异常:

回溯(最近一次呼叫最后一次):
文件“/home/mu351i/PycharmProjects/untitled/get_sp500_beautifulsou_intro.py”,第44行,从雅虎获取数据
df=web.DataReader(股票代码'yahoo',开始,结束)
文件“/home/mu351i/PycharmProjects/untitled/venv/lib/python3.7/site packages/pandas/util/_decorators.py”,第208行,包装中
返回函数(*args,**kwargs)
datareader中的文件“/home/mu351i/PycharmProjects/untitled/venv/lib/python3.7/site packages/pandas_datareader/data.py”,第387行
会话=会话,
文件“/home/mu351i/PycharmProjects/untitled/venv/lib/python3.7/site packages/pandas\u datareader/base.py”,第251行,已读
df=self.\u读取一个数据(self.url,params=self.\u获取参数(self.symbols))
文件“/home/mu351i/PycharmProjects/untitled/venv/lib/python3.7/site packages/pandas\u datareader/yahoo/daily.py”,第165行,在“读取”数据中
价格[“日期”]=截止日期时间(截止日期时间)(价格[“日期”],单位为“.dt.Date”)
文件“/home/mu351i/PycharmProjects/untitled/venv/lib/python3.7/site packages/pandas/core/frame.py”,第2995行,位于getitem
indexer=self.columns.get_loc(key)
文件“/home/mu351i/PycharmProjects/untitled/venv/lib/python3.7/site packages/pandas/core/index/base.py”,第2899行,在get_loc中 返回self.\u引擎。获取\u loc(self.\u可能\u cast\u索引器(键)) 文件“pandas/_libs/index.pyx”,第107行,在pandas._libs.index.IndexEngine.get_loc中 文件“pandas/_libs/index.pyx”,第131行,在pandas._libs.index.IndexEngine.get_loc中 文件“pandas/_libs/hashtable_class_helper.pxi”,第1607行,在pandas._libs.hashtable.PyObjectHashTable.get_项中 文件“pandas/_libs/hashtable_class_helper.pxi”,第1614行,在pandas._libs.hashtable.PyObjectHashTable.get_项中 KeyError:“日期”

在处理上述异常期间,发生了另一个异常:

回溯(最近一次呼叫最后一次): 文件“/home/mu351i/PycharmProjects/untitled/get_sp500_beautifulsou_intro.py”,第57行,in 从雅虎()获取数据 文件“/home/mu351i/PycharmProjects/untitled/get_sp500_beautifulsou_intro.py”,第48行,从雅虎获取数据 除RemoteDataError外: NameError:未定义名称“RemoteDataError”

进程已完成,退出代码为1



how would you avoid this by changing this code?

将日期时间导入为dt 导入操作系统 进口泡菜

将bs4作为bs导入 以web形式导入datareader.data 导入请求

def safe_sp500_报价器(): resp=requests.get(“”) soup=bs.BeautifulSoup(分别为文本'lxml') table=soup.find('table',{'class':'wikitable sortable'})

安全sp500自动售检票机()

def从雅虎获取数据(重新加载sp500=False): 如果重新加载U sp500: tickers=安全的\u sp500\u tickers() 其他: 打开('sp500tickers.pickle','rb')作为f: tickers=pickle.load(f)

从雅虎()获取数据

日期、高位、低位、打开、关闭、音量、调整关闭 2010-06-29,25.0,17.540000915527344,19.0,23.889999389648438,18766300,23.889999389648438 2010-06-30,30.420000076293945,23.299999237060547,25.790000915527344,23.829999923706055,17187100,23.829999923706055 2010-07-01,25.920000076293945,20.270000457763672,25.0,21.959999084472656,8218800,21.959999084472656 2010-07-02,23.100000381469727,18.709999084472656,23.0,19.200000762939453,5139800,19.200000762939453 2010-07-06,20.0,15.829999923706055,20.0,16.110000610351562,6866900,16.110000610351562 2010-07-07,16.6299991607666,14.979999542236328,16.399999618530273,15.800000190734863,6921700,15.800000190734863 2010-07-08,17.520000457763672,15.569999694824219,16.139999389648438,17.459999084472656,7711400,17.459999084472656 2010-07-09,17.899999618530273,16.549999237060547,17.579999923706055,17.399999618530273,4050600,17.399999618530273 2010-07-12,18.06999969482422,17.0,17.950000762939453,17.049999237060547,2202500,17.049999237060547 2010-07-13,18.639999389648438,16.899999618530273,17.389999389648438,18.139999389648438,2680100,18.139999389648438 2010-07-14,20.149999618530273,17.760000228881836,17.940000534057617,19.84000015258789,4195200,19.84000015258789 2010-07-15,21.5,19.0,19.940000534057617,19.889999389648438,3739800,19.889999389648438 2010-07-16,21.29999237060547,20.049999237060547,20.700007629453,20.6399993896484382621300,20.639999389648438


Please provide constructive feedback because I'new here.

Thanks :)

您缺少一个
导入

在脚本顶部添加以下
import

从pandas\u datareader.\u utils导入RemoteDataError

将pandas作为pd导入
import pandas as pd

df = pd.read_html(
    "https://en.wikipedia.org/wiki/List_of_S%26P_500_companies")[0]

sort = pd.DataFrame(df).sort_values(by=['Date first added'])
sort['Date first added'] = pd.to_datetime(sort['Date first added'])

start_date = '1-1-1999'
end_date = '11-12-2019'

mask = (sort['Date first added'] > start_date) & (
    sort['Date first added'] <= end_date)

sort = sort.loc[mask]

pd.DataFrame(sort).to_csv('result.csv', index=False)
df=pd.read\u html( "https://en.wikipedia.org/wiki/List_of_S%26P_500_companies")[0] sort=pd.DataFrame(df).sort\u值


A Commentator asked for some DATA Sample, well this is DATA form TSLA.csv


Please provide constructive feedback because I'new here.

Thanks :)
import pandas as pd

df = pd.read_html(
    "https://en.wikipedia.org/wiki/List_of_S%26P_500_companies")[0]

sort = pd.DataFrame(df).sort_values(by=['Date first added'])
sort['Date first added'] = pd.to_datetime(sort['Date first added'])

start_date = '1-1-1999'
end_date = '11-12-2019'

mask = (sort['Date first added'] > start_date) & (
    sort['Date first added'] <= end_date)

sort = sort.loc[mask]

pd.DataFrame(sort).to_csv('result.csv', index=False)