簡體   English   中英

Pandas DataReader 從雅虎財經獲取股票報價時拋出日期錯誤

[英]Pandas DataReader Throws a Date Error When Getting Stock Quotes From Yahoo Finance

當我運行 DateReader 程序從 Yahoo Finance 獲取報價時,它給了我一條錯誤消息“KeyError: 'Date'”

import pandas as pd
import pandas_datareader.data as web
from datetime import datetime

start = datetime(2015, 1, 1)
end = datetime.today()
ticker_dict = {}
for idx, ticker in enumerate(['AAPL', 'TSLA', 'IBM', 'LNKD']):
    df_ticker = web.DataReader(ticker, 'yahoo', start, end) 
    ticker_dict[ticker] = df_ticker['Close']
stocks = DataFrame(ticker_dict) 

但是,如果我只運行 DataReader 行,它就可以工作。

df = web.DataReader(['AAPL', 'TSLA', 'IBM', 'LNKD'], 'yahoo', start, end)

有人知道第一個代碼有什么問題嗎?

問題就在那里,因為它在第一個代碼中引發了“LNKD”的異常。 放一個try/except塊。

import pandas as pd
import pandas_datareader.data as web
from datetime import datetime

start = datetime(2015, 1, 1)
end = datetime.today()
ticker_dict = {}
for idx, ticker in enumerate(['AAPL', 'TSLA', 'IBM', 'LNKD']):
    try:
        df_ticker = web.DataReader(ticker, 'yahoo', start, end) 
        ticker_dict[ticker] = df_ticker['Close']
    except:pass
stocks = pd.DataFrame(ticker_dict) 

Output:

                  AAPL         TSLA         IBM
Date
2014-12-31  110.379997   222.410004  160.440002
2015-01-02  109.330002   219.309998  162.059998
2015-01-05  106.250000   210.089996  159.509995
2015-01-06  106.260002   211.279999  156.070007
2015-01-07  107.750000   210.949997  155.050003
...                ...          ...         ...
2020-08-03  435.750000  1485.000000  124.309998
2020-08-04  438.660004  1487.000000  125.839996
2020-08-05  440.250000  1485.020020  125.449997
2020-08-06  455.609985  1489.579956  126.120003
2020-08-07  444.450012  1452.709961  124.959999

[1411 rows x 3 columns]

在第二個代碼中,“LNKD”也沒有數據。 都是NaN

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM