【问题标题】:Droping rows with outliers from specific columns从特定列中删除具有异常值的行
【发布时间】:2020-11-28 20:36:48
【问题描述】:

我正在一个严重不平衡的数据集(95% 1 和 5% 0)上构建二元分类模型。我想删除带有异常值的行,我使用了以下代码:

from scipy import stats
df=df[(np.abs(stats.zscore(df)) < 3).all(axis=1)]

但是,此代码将删除标签为 0 的行。是否有更好的方法可以删除除标签列之外的所有列的异常值行?

【问题讨论】:

    标签: python pandas outliers drop


    【解决方案1】:

    试试这个(假设您的标签位于df["label"]):

    df = df[(df["label"] == 0) | (np.abs(stats.zscore(df)) < 3).all(axis=1)]
    

    第一个条件将保留所有带有df["label"] == 0 的行,而忽略zscore

    【讨论】:

      猜你喜欢
      • 2019-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-08
      • 2012-02-25
      • 2016-10-04
      相关资源
      最近更新 更多