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

如何基于Sklearn LOF筛选结果保存去异常值的完整Pandas数据集

移除异常值并保存过滤后的DataFrame

核心操作步骤

假设你已经将LocalOutlierFactor的异常识别结果添加到了原DataFrame中(比如新增一列outlier_label,值为"BAD"的行对应异常数据),按以下两步完成需求:

  1. 过滤异常行
    用Pandas布尔索引筛选出非异常的行:

    # 假设原DataFrame名为df,异常标记列是outlier_label
    filtered_df = df[df['outlier_label'] != 'BAD']
    

    如果你的LOF模型直接返回的是-1(代表异常)和1(代表正常)的预测数组(比如执行了lof_pred = lof.fit_predict(df[['power', 'pid']])),可以先将结果转为标记列再过滤:

    # 先给原DataFrame添加异常标记列
    df['outlier_label'] = ['BAD' if x == -1 else 'GOOD' for x in lof_pred]
    # 过滤掉异常行
    filtered_df = df[df['outlier_label'] != 'BAD']
    
  2. 保存为CSV文件
    使用to_csv()方法保存过滤后的完整DataFrame,建议设置index=False避免保存自动生成的索引列:

    filtered_df.to_csv('filtered_data.csv', index=False)
    

额外优化(可选)

如果不需要保留异常标记列,可以在保存前删除:

filtered_df = filtered_df.drop(columns=['outlier_label'])
filtered_df.to_csv('filtered_data.csv', index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 19:51:20