下载日期范围的 yahoofinance 数据

downloading yahoofinance data for date ranges

我有一个包含 900 个代码的数据框,我正在尝试下载所述日期前 -15 个工作日到所述日期后 30 个工作日的调整后收盘价,总共约 9 周的数据。

    date        symbol  date_start  date_end
0   2020-03-20  USAU    2020-02-28  2020-05-01
1   2020-03-20  INLX    2020-02-28  2020-05-01
4   2020-03-20  SIML    2020-02-28  2020-05-01
6   2020-03-19  NLNK    2020-02-27  2020-04-30
7   2020-03-19  OMWS    2020-02-27  2020-04-30
9   2020-03-19  LUMO    2020-02-27  2020-04-30
11  2020-03-18  T.TO    2020-02-26  2020-04-29
12  2020-03-18  TU      2020-02-26  2020-04-29
15  2020-03-16  SUMR    2020-02-24  2020-04-27
17  2020-03-16  DTYS    2020-02-24  2020-04-27

我尝试使用 yahoo finance 的 -15/+30 阈值过滤开始日期和结束日期,但我一直返回 null。 我会尝试批量下载功能 df = yf.download(tickers = [list_of_tickers],...),但它需要明确的开始日期和结束日期,我不确定如何解决这个问题。它正在返回一个 pandas 数据帧,所以我不确定这是否是明确的问题。

我从文档中知道了这一点,但是那里没有解决我的问题的方法。:

下面是代码供集思广益,但我卡住了,不知道如何解决这个问题

data_stocks = []

for symbol in data_shortened['symbol']:
    try: 
        placeholder = yf.download(symbol, data_shortened['start_date'], data_shortened['end_date'])
        data_stocks.append(placeholder)
    
    except:
        print('Failed')
        print(len(data_stocks))

感谢您的帮助。

您可以使用 iterrows:

data_stocks = {}

for _, row in data_shortened.iterrows():
        placeholder = yf.download(row['symbol'], row['date_start'], row['date_end'])
        data_stocks[row['symbol']] = placeholder

stocks = pd.concat(data_stocks)

输出:

>>> stocks
                  Open   High    Low  Close  Adj Close   Volume
     Date                                                      
USAU 2020-02-27    7.1    7.5    6.5    6.9        6.9  23460.0
     2020-02-28    6.5    6.8    6.0    6.3        6.3  22010.0
     2020-03-02    6.5    6.6    6.0    6.1        6.1   7300.0
     2020-03-03    6.4    6.5    6.0    6.5        6.5   9700.0
     2020-03-04    6.5    7.0    6.1    7.0        7.0  13340.0
...                ...    ...    ...    ...        ...      ...
DTYS 2020-04-20  120.0  120.0  120.0  120.0      120.0      0.0
     2020-04-21  120.0  120.0  120.0  120.0      120.0      0.0
     2020-04-22  120.0  120.0  120.0  120.0      120.0      0.0
     2020-04-23  120.0  120.0  120.0  120.0      120.0      0.0
     2020-04-24  120.0  120.0  120.0  120.0      120.0      0.0

[358 rows x 6 columns]