微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

查找数据框中考虑的异常记录

如何解决查找数据框中考虑的异常记录

我正在构建一个身体测量预测机器学习模型。

我想删除关于年龄、体重和身高的异常百分比组脂肪、颈部、胸部、腹部、臀部、大腿、膝盖、脚踝、二头肌、F 臂和手腕的记录。

我的意思是,如果 25 岁、190 体重和 75 身高的记录具有特定的 %Fat 或 Neck 或 Chest 的四分位数范围,则这些列的所有值都应在四分位数范围内,任何异常值都可以替换为平均值。 this is what my dataset looks like

解决方法

我不完全确定,如果我知道您想如何清除异常值。我为一个项目编写了一个小公式,用于根据给定的分位数清理数据集。这个公式的特别之处在于,它分两个阶段工作。首先,它根据给定的百分比级别获取要清理的每列的分位数,其次,它删除值高于给定阈值的所有行。与迭代每列相比,两步过程允许删除较少的值。代码如下:

def clean_quantiles(dataset,variables=[],frame=[0.025,0.975]):
    df = dataset.copy()
    quantiles = []
    
    for name in variables:
        quantiles.append([df[name].quantile(frame[0]),df[name].quantile(frame[1])])
    
    for i in range(0,len(variables)):
        df = df[df[variables[i]].between(quantiles[i][0],quantiles[i][1])]
    
    df.reset_index(drop=True,inplace=True)
    return df
  • “数据集”是您放置熊猫数据框的地方
  • “变量”应该是要检查的列列表
  • “frame”包含要排除的百分比异常值

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。