从特定列中删除具有异常值的行
Droping rows with outliers from specific columns
我在严重不平衡的数据集(95% 1 和 5% 0)上构建二元分类模型。我想删除异常值的行,我使用了以下代码:
from scipy import stats
df=df[(np.abs(stats.zscore(df)) < 3).all(axis=1)]
但是,此代码删除了我的标签为 0 的行。是否有更好的方法来删除除标签列以外的所有列的异常值行?
试试这个(假设您的标签位于 df["label"]
):
df = df[(df["label"] == 0) | (np.abs(stats.zscore(df)) < 3).all(axis=1)]
第一个条件将保留所有带有 df["label"] == 0
的行,忽略 zscore
。
我在严重不平衡的数据集(95% 1 和 5% 0)上构建二元分类模型。我想删除异常值的行,我使用了以下代码:
from scipy import stats
df=df[(np.abs(stats.zscore(df)) < 3).all(axis=1)]
但是,此代码删除了我的标签为 0 的行。是否有更好的方法来删除除标签列以外的所有列的异常值行?
试试这个(假设您的标签位于 df["label"]
):
df = df[(df["label"] == 0) | (np.abs(stats.zscore(df)) < 3).all(axis=1)]
第一个条件将保留所有带有 df["label"] == 0
的行,忽略 zscore
。