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

实例化DataProcesser触发AttributeError:'DataFrame'无seek属性如何解决

报错原因

你传入DataProcesser初始化方法的第一个参数类型错误:

  • DataProcesser的__init__方法第一个入参archive_path设计为接收zip压缩包的文件路径字符串,或者具有seek方法的文件类对象
  • 你在循环中调用DataProcesser(data_file, datatable=False)时,传的data_file是pd.read_csv()返回的DataFrame对象
  • 初始化方法内部直接将该对象传给zipfile.ZipFile构造函数,ZipFile会尝试调用传入对象的seek方法操作文件,而DataFrame没有该方法,因此抛出AttributeError。

另外你的代码还有两处基础逻辑错误:

  • raw_file_processing方法缩进错误,写在了__init__方法内部,属于局部函数,类实例无法正常调用
  • 调用逻辑颠倒:DataProcesser的read_archive方法是用来读取已经打包好的、包含三个目标csv的zip包,而你现在直接把未处理的原始csv读成DataFrame传入类,不符合设计逻辑。
修复方案

1. 修正代码基础错误

  • 调整raw_file_processing方法的缩进,让它和dataset_csv、classes_csv等方法同级,成为类的公共方法
  • 修正其他语法错误:
    • classes_csv方法里的drop_duplicate改为drop_duplicates
    • zip_files方法里的ZipFile要补充前缀zipfile.,或者在导入时添加from zipfile import ZipFile
    • raw_file_processing方法内所有直接调用archive_path的地方改为self.archive_path

2. 调整调用逻辑

你需要按照「处理原始数据→生成目标csv→打包zip→读取zip」的流程调用,删除原有循环里把DataFrame传入DataProcesser的错误代码,替换为如下逻辑即可:

input_path = "//wsl$/Ubuntu-20.04/home/melissachua/CODEX/input_data"
# 第一步:处理原始数据生成zip包
# 传入原始数据目录路径,关闭自动读取zip
processor = DataProcesser(input_path, read_on_init=False)
# 依次调用四个方法生成csv
processor.raw_file_processing()
processor.dataset_csv()
processor.classes_csv()
processor.idset_csv()
# 打包生成data.zip
processor.zip_files()

# 第二步:读取生成好的zip包
processor = DataProcesser("./data.zip", datatable=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:09:03