You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何对大型DataFrame每100行批量应用自定义函数

分批调用接口提取高程数据实现方案

不需要逐行遍历,直接按固定批次大小切片遍历原DataFrame即可,实现逻辑如下:

核心实现代码

假设你的自定义高程函数my_function接收单批次DataFrame输入,返回对应长度的高程值列表:

import pandas as pd

# 配置单批次最大请求量
BATCH_SIZE = 100
# 存储所有批次返回的高程结果
elevation_result = []

for i in range(0, len(df), BATCH_SIZE):
    # 截取当前批次的100条数据(最后一批不足100条会自动取剩余所有)
    current_batch = df[i:i+BATCH_SIZE]
    # 调用高程提取函数
    batch_elev = my_function(current_batch)
    # 追加当前批次结果到总列表
    elevation_result.extend(batch_elev)

# 合并所有结果到原DataFrame
df["elevation"] = elevation_result

如果你的my_function返回带索引的DataFrame格式结果,可以用更稳妥的拼接方式,避免索引错位:

import pandas as pd

BATCH_SIZE = 100
batch_res_list = []

for i in range(0, len(df), BATCH_SIZE):
    current_batch = df[i:i+BATCH_SIZE]
    batch_res = my_function(current_batch)
    batch_res_list.append(batch_res)

# 合并所有批次结果后和原DataFrame按索引拼接
all_batch_res = pd.concat(batch_res_list)
df = pd.concat([df, all_batch_res], axis=1)

优化建议

  • 可在批次循环中增加异常捕获和重试逻辑,避免单批次接口请求失败导致整个任务中断
  • 若接口有QPS限制,可在每批次请求结束后增加time.sleep()延时,控制请求频率

内容的提问来源于stack exchange,提问作者Joehat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 07:15:03