首页 > 解决方案 > 过滤列中的值时引用特定的 df 列

问题描述

我正在从我的数据集中删除异常值,并想对有效方法进行一些思考。

我目前正在使用 IQR 过滤掉数据中的任何异常值,如下所示:

Q1 = df.grades.quantile(0.25)
Q3 = df.grades.quantile(0.75)
IQR = Q3 - Q1 

我的df中的成绩列包含我要删除异常值的值。

我以前使用过这样做的代码,但我如何编辑下面的代码,只考虑成绩列?(df.grades) 而不仅仅是 df

df = df[~((df < (Q1 - 1.5 * IQR)) |(df > (Q3 + 1.5 * IQR))).any(axis=1)]

谢谢!

标签: pythonpython-3.xpandas

解决方案


我认为您需要删除any和测试列grades,例如:

df = df[~((df.grades < (Q1 - 1.5 * IQR)) | (df.grades > (Q3 + 1.5 * IQR)))]

推荐阅读