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

AutoClean运行异常:脚本退出码1,无法打印DataFrame头部求助

问题排查与修复方案

你的脚本存在多个语法逻辑错误,导致运行直接退出(code=1),以下是具体问题和修复步骤:

核心错误点

  • 错误定义__init__函数:__init__是类的构造方法,不能单独作为普通函数定义,且你未调用该函数,内部的resultat赋值完全无效。
  • pd.read_csv参数误用:你试图直接将列名作为参数传递来指定类型,这不符合read_csv的语法,正确方式是用dtype字典传入列类型映射。
  • 变量作用域问题:__init__内的resultat是局部变量,外部代码无法访问,会触发NameError。
  • 布尔参数传值错误:AutoClean的duplicates='True'这类参数传入的是字符串,而非布尔值True,会导致参数解析失败。
  • 错误遍历self.pipeline:没有定义类,self不存在,且AutoClean返回的是单个清洗实例,不是可迭代列表。

修复后的完整代码

from AutoClean.autoclean import AutoClean
import pandas as pd

# 定义各列的数据类型映射字典
dtype_mapping = {
    'profileUrl': str,
    'fullName': str,
    'firstName': str,
    'lastName': str,
    'profileImage': str,
    'additionnalInfo': str,
    'connectionDegree': str,
    'job': str,
    'location': str,
    'sharedConnections': str,
    'commonConnection1': str,
    'url': str,
    'name': str,
    'query': str,
    'category': str,
    'commonConnection': str,
    # 用object类型兼容NoneType数据,后续AutoClean会自动处理
    'timestamp': object,
    'error': object
}

# 正确读取CSV并指定列类型
resultat = pd.read_csv(
    r"C:\Users\radia\Downloads\result-(11)-csv.csv",
    dtype=dtype_mapping
)

# 初始化AutoClean,注意布尔参数用True/False而非字符串
cleaner = AutoClean(
    resultat,
    mode='manual',
    duplicates=True,
    missing_num='linreg',
    missing_categ='auto',
    encode_categ=False,
    extract_datetime='auto',
    outliers='delete',
    outlier_param=1.5,
    logfile=True,
    verbose=True
)

# 获取清洗后的DataFrame
cleaned_data = cleaner.output

# 打印数据集头部
print(cleaned_data.head())

# 若需要保存清洗后的文件,取消下面注释
# cleaned_data.to_csv(r"C:\Users\radia\Downloads\cleaned_result.csv", index=False)

额外排查建议

如果修复后仍报错,直接在终端运行脚本(而非Debug模式),获取具体错误信息:

python "c:\Users\radia\OneDrive\Bureau\Scripts\automatisation_data_cleaning.py"

终端会输出详细的错误栈,帮助定位剩余问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 21:30:52