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
相关产品推荐
相关产品推荐

