【发布时间】:2021-08-21 16:45:50
【问题描述】:
问题:我需要为多个日期范围运行相同的 API,并将它们全部附加到数据框。我的 for 循环将每个 API 调用的数据框附加为一个列表。我希望将列表解析为 API 调用通常返回的列并将它们全部附加在一起。
earnings_info = []
for earnings_api in earnings_df['earnings_api']:
response = requests.get(earnings_api, headers={'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36'})
df = json_normalize(response.json())
earnings_info.append(df)
sleep(1)
earnings = pd.DataFrame(earnings_info)
【问题讨论】:
-
你能显示你的API的输出格式吗
-
下图是API预期的输出格式
-
get api 调用返回什么?
-
您可能希望存储一次列名,然后使用
earnings_info.append(df.values.tolist()),然后在创建合并的 DataFrame 时提供列名。您正在重用earnings_df变量...这是有意的吗? -
我不确定是否诚实。因为 API 调用允许的日期范围有限制,所以我需要运行几个以获取必要的信息。我有点希望循环只会创建一个类似于运行 1 次调用的数据帧(如下图所示)并继续追加,但显然不是这样。感谢您的帮助。将给 Earnings_info.append(df.values.tolist()) 一个机会。
标签: python pandas list dataframe for-loop