从雅虎财经检索大量数据

Retrieve a lot of data from Yahoo finance

我有一个 csv 文件,其中包含在纳斯达克上市的所有股票的代码。这是该 csv 文件的 link。人们可以从那里下载它。有8000多只股票上市。以下是代码

import pandas as pd
import yfinance # pip install yfinance

tick_pd = pd.read_csv("/path/to/the/csv/file/nasdaq_screener_1654004691484.csv",
                  usecols = [0])

我做了一个函数来检索股票代码的历史股票价格。该功能如下:-

## function to be applied on each stock symbol
def appfunc(ticker):
  A = yf.Ticker(ticker).history(period="max")
  A["symbol"] = ticker
  return A

然后我将此函数应用到 tick_pd 的每一行,方法如下:-

hist_prices = tick_pd.apply(appfunc)

但这需要太多时间,太多时间。我希望有人能找到一种方法来快速检索这些数据。或者,如果有一种方法可以将其并行化。我对 python 很陌生,所以,我真的不知道有多少方法可以做到这一点。

提前致谢

您可以使用 yf.download 异步下载所有代码::

tick_pd = pd.read_csv('nasdaq_screener_1654024849057.csv', usecols=[0])
df = yf.download(tick_pd['Symbol'].tolist(), period='max')

您可以使用 threads 作为 yf.download 的参数:

# Enable mass downloading (default is True)
df = yf.download(tick_pd['Symbol'].tolist(), period='max', threads=True)  

# OR

# You can control the number of threads
df = yf.download(tick_pd['Symbol'].tolist(), period='max', threads=8)