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

如何将OpenAI循环生成的响应存入DataFrame新列并导出Excel?

解决OpenAI响应存入DataFrame并导出Excel的问题

你之前的代码能正确打印响应,但没把结果收集起来存入DataFrame,之前得到None大概率是因为存储方式错误(比如直接在循环里覆盖列值,或者没正确将结果存入可迭代对象)。以下是修正后的完整方案:

步骤说明

  • 先创建一个空列表,用来逐个存储每个问题对应的响应结果
  • 遍历Question列时,把处理后的响应字符串添加到列表中
  • 循环结束后,将整个列表赋值给DataFrame的新列
  • 最后导出到Excel文件

修正后的代码

import pandas as pd
import openai

# 假设你的df已经正确加载完成
responses = []  # 初始化空列表存储所有响应

for question in df['Question']:
    response = openai.Completion.create(
        model="text-davinci-003",
        prompt="Write a detailed, lengthy, and authoratative response to the question: {}".format(question),
        temperature=0.7,
        max_tokens=20,
        top_p=1,
        frequency_penalty=0,
        presence_penalty=0
    )
    # 提取并清理响应文本,添加到列表
    cleaned_response = response['choices'][0]['text'].strip()
    responses.append(cleaned_response)
    print(cleaned_response)

# 将响应列表赋值给DataFrame新列
df['Response'] = responses

# 导出到Excel(需要安装openpyxl依赖:pip install openpyxl)
df.to_excel('question_responses.xlsx', index=False)

关键注意点

  • 用列表收集结果比在循环中直接修改DataFrame更高效,也能避免出现值覆盖、NaN等异常问题
  • 导出Excel时,index=False会去掉默认的行索引,让输出文件更整洁
  • 如果导出过程报错,确保已经安装了openpyxl库(这是pandas处理.xlsx格式的依赖包)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 23:40:57