0

我创建了一个函数来删除这样的异常数据:

def remove_outliers(data):
    numerics = ['int16', 'int32', 'int64', 'float16', 'float32', 'float64']
    data = data.select_dtypes(include=numerics)

    for i in data.columns:
        Q1 = data[i].quantile(0.25)
        Q3 = data[i].quantile(0.75)
        IQR = Q3 - Q1
    
        data = data[~((data[i] < (Q1 - 1.5 * IQR)) | (data[i] > (Q3 + 1.5 * IQR)))]

但是当我使用箱线图检查时,异常值仍然没有被删除。代码有什么问题?

4

1 回答 1

1

您需要在函数本身内返回数据集。例如:

def remove_outliers(data):
    numerics = ['int16', 'int32', 'int64', 'float16', 'float32', 'float64']
    data = data.select_dtypes(include=numerics)

    for i in data.columns:
        Q1 = data[i].quantile(0.25)
        Q3 = data[i].quantile(0.75)
        IQR = Q3 - Q1
    
        data = data[~((data[i] < (Q1 - 1.5 * IQR)) | (data[i] > (Q3 + 1.5 * IQR)))]

    return data

您还没有提供代码来说明如何应用此函数来获取箱线图,但我希望这会有所帮助!

于 2021-11-01T16:41:33.473 回答