python - 将 DataFrame.from_records 添加到现有的 df
问题描述
我一直在使用请求模块提取数据以从网站获取一些数据。要将数据放入 DataFrame,我一直在使用 DataFrame.from_records。
在我尝试将数据附加到现有 DataFrame 之前,一切正常。我尝试过追加、加入和合并方法,但是我遇到了一些困难。
由于我的 API 请求可以提取的项目数量有限,因此我希望能够将其多次附加到现有的 DataFrame 中,但是,当我运行脚本时,尽管我有全新的数据,但它只附加一次数据从请求“在我重新运行脚本之后”。
任何建议表示赞赏!
解决方案
好的,将我的评论转换为答案。如果由于 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
如果您还没有解决它,请打开一个新问题。
推荐阅读
- python - 尽管我已经定义了函数,但代码有什么问题?
- node.js - 如果 src 是生成验证码的 php 脚本,如何在 ion-img 中抓取图像
- sql - 更新字段时,会为所有记录触发日期修改触发器,而不仅仅是正在修改的记录
- c - 如何在 OpenSSL 1.1.1 中预先准备 DTLS 服务器
- python - `train=True` 在 H2O model_performance() 中的作用是什么?
- c# - 从 .mp3 文件中获取“初始密钥”值
- c++ - 使用 bicubic c++ 的 resize 函数的 opencv 代码流是什么?
- php - GoDaddy 的 PHP cURL SSL 问题:SSL 证书问题:无法获取本地颁发者证书
- c - 需要一个示例来检索 Gstreamer C 代码中输出流的流统计信息吗?
- java - 在 IntelliJ 中运行 OptaPlanner 示例