首页 > 解决方案 > 将 DataFrame.from_records 添加到现有的 df

问题描述

我一直在使用请求模块提取数据以从网站获取一些数据。要将数据放入 DataFrame,我一直在使用 DataFrame.from_records。

在我尝试将数据附加到现有 DataFrame 之前,一切正常。我尝试过追加、加入和合并方法,但是我遇到了一些困难。

由于我的 API 请求可以提取的项目数量有限,因此我希望能够将其多次附加到现有的 DataFrame 中,但是,当我运行脚本时,尽管我有全新的数据,但它只附加一次数据从请求“在我重新运行脚本之后”。

任何建议表示赞赏!

标签: pythonpandas

解决方案


好的,将我的评论转换为答案。如果由于 API 限制在循环中检索数据,首先检查是否可以连接数据或将其收集到列表中,最后仅将其转换为 DataFrame。如果这不可能,请在每次调用时创建 DataFrame,但将它们收集到列表中,然后用于pd.concat将该 DataFrame 列表连接到单个最终 DataFrame 中。通过合并、附加等方式在循环的每个步骤中修改现有的 DataFrame,会产生不必要的复杂性并减慢程序的速度。

out = []
API_CALLS = 10

for i in range(API_CALLS):
    # Your API call here
    dat = call_api()
    df = pd.DataFrame.from_records(dat)
    out.append(df)

df = pd.concat(out)

希望这会有所帮助,所以问题应该有完整的生命周期,并且应该在某个时候关闭。f-strings如果您还没有解决它,请打开一个新问题。


推荐阅读