当包含空数据帧时,从 for 循环连接数据帧

时间:2021-07-27 12:50:33

标签: python pandas dataframe for-loop concatenation

我有一个包含大约 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 调用循环的结果:

enter image description here

0 个答案:

没有答案