我有一个包含大约 2000 家公司的列表和 EODHistoricalData API,该 API 可按期间返回每家公司的收益预测。公司的每个数据都是它自己的数据框。需要转置数据框以使数据框在公司之间保持一致。我希望通过投影 API 遍历股票行情列表并将所有数据附加在一起。它可以使用一些名称,但是当我尝试执行完整列表时,在连接时出现错误。
以下是我使用的步骤和结果:
当我打电话给少数公司时,数据框正确显示:
test_ticker_trend = []
for ticker in test_tickers_df['ticker']:
try:
web_add = "https://eodhistoricaldata.com/api/fundamentals/{ticker}?api_token=APIKEY&filter=Earnings::Trend"
web_add = web_add.format(ticker = ticker)
web_df = pd.read_json(web_add)
transpose_df = web_df.transpose()
transpose_df['ticker'] = ticker
test_ticker_trend.append(transpose_df)
except:
test_ticker_trend.append('0')
test_ticker_trend_df = pd.concat(test_ticker_trend, ignore_index=True)
test_ticker_trend_df
但是,当我尝试在大量公司(带有几个空数据帧)上运行循环时,在尝试连接时出现错误(API 本身运行良好):
TypeError:第一个参数必须是可迭代的 Pandas 对象,您传递了一个“DataFrame”类型的对象
以下是转换前 API 调用循环的结果: