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

如何将循环结果与API调用结果存入已有Pandas DataFrame

处理DataFrame中API调用结果的存储问题

输入DataFrame示例

external_id
sw_1
sw_2
sw_3
Sw_55

期望输出示例

external_id : Status
sw_1 :Hello Sw_1
sw_2 :Hello sw_2
sw_3 :hello sw_3
Sw_55 :Hello sw_55

现有代码

df = pd.read_csv(r'/Users/man/Desktop/input.csv')

output_df = df.copy()
output_df['Status'] = ""

list2 = []

for i in df['external_id']:
    x =  "Hello  " + i
    list2.append(x)

df1 = pd.DataFrame(list2)
print(df1)

实际需求

输入DataFrame包含external_id字段,需要为每个external_id调用API,并将API调用结果(状态码与响应内容)存入该external_id对应的原DataFrame行中。


解决方案

你不需要额外创建新的DataFrame,直接将生成的结果列表赋值给已有DataFrame的Status列即可。以下是优化后的代码,包含示例逻辑和真实API调用的替换说明:

import pandas as pd
# 若调用API需引入requests库
# import requests

df = pd.read_csv(r'/Users/man/Desktop/input.csv')
output_df = df.copy()

status_list = []
for ext_id in df['external_id']:
    # --------------------------
    # 替换为实际API调用逻辑示例:
    # response = requests.get(f"https://your-api-endpoint/{ext_id}")
    # api_result = f"Status Code: {response.status_code}, Response: {response.text}"
    # --------------------------
    # 以下是匹配你期望输出的示例处理逻辑
    # 统一id格式:首字母大写,其余小写
    formatted_id = ext_id[0].upper() + ext_id[1:].lower()
    # 对应示例中的hello/Hello大小写差异,这里用首字母大写的Hello
    status_text = f"Hello {formatted_id}"
    status_list.append(status_text)

# 直接将结果列表赋值给output_df的Status列
output_df['Status'] = status_list

# 按期望格式打印输出
print("external_id : Status")
for _, row in output_df.iterrows():
    print(f"{row['external_id']} :{row['Status']}")

关键说明

  1. 直接复用已有DataFrame:无需新建df1,将生成的status_list直接赋值给output_df['Status'],即可完成对应行的结果填充。
  2. API调用替换:把示例中的status_text生成逻辑替换为真实的API调用代码,比如用requests库发起请求后,提取状态码和响应内容拼接成字符串。
  3. 格式处理:如果需要对external_id做大小写统一(匹配你期望输出的格式),可以用字符串方法快速处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 21:35:35