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

AttributeError报错:'str'对象无to_csv属性,如何保存模型输出为CSV?

问题解决:T5模型摘要输出保存CSV报错AttributeError: 'str' object has no attribute 'to_csv'

错误本质

你触发报错的核心原因是:output是字符串类型,而to_csv()是pandas DataFrame/Series专属的方法,字符串对象没有这个属性,自然无法调用。

同时你的代码存在逻辑漏洞:你把整个Series(4312条文本)转成了单个大字符串传给tokenizer,导致模型生成的是所有文本拼接后的整体摘要,而非每条数据对应的单独摘要,不符合批量处理需求。

修正方案

步骤1:批量生成单条文本对应的摘要

循环处理每条预处理后的文本,为每条数据生成独立摘要,避免将所有文本合并输入模型。

步骤2:用DataFrame存储结果并保存CSV

将原文本和对应摘要组合成pandas DataFrame,再调用to_csv()方法保存。

完整修正代码

import pandas as pd

# 原预处理逻辑保留
gf = df['findings'].astype(str)
preprocess_text = gf.str.strip().replace("\n", "")
t5_prepared_Text = "summarize: " + preprocess_text

# 初始化列表存储所有摘要
summaries = []

# 循环处理每条文本
for text in t5_prepared_Text:
    # 跳过空值对应的文本
    if text == "summarize: nan":
        summaries.append("")
        continue
    
    # 对单条文本编码
    tokenized_text = tokenizer.encode(text, return_tensors="pt").to(device)
    
    # 生成摘要
    summary_ids = model.generate(
        tokenized_text,
        num_beams=4,
        no_repeat_ngram_size=2,
        min_length=30,
        max_length=100,
        early_stopping=True
    )
    
    # 解码摘要并添加到列表
    output = tokenizer.decode(summary_ids[0], skip_special_tokens=True)
    summaries.append(output)

# 组合成DataFrame,方便保存和查看
result_df = pd.DataFrame({
    "original_findings": preprocess_text,
    "summary": summaries
})

# 保存到CSV,index=False去掉自动生成的索引列
result_df.to_csv('/content/drive/MyDrive/hid.csv', index=False)

关键改动说明

  • 移除str(t5_prepared_Text)的强制类型转换,改为循环遍历每条文本,确保模型处理单条数据
  • 用列表收集所有摘要结果,最终转换为DataFrame,以此正常调用to_csv()方法
  • 增加空值处理逻辑,避免对'nan'文本生成无效摘要

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 04:52:34