Python-检测并排除熊猫数据框中的异常值
我有一个只有几列的熊猫数据框。
现在我知道某些行是基于某个列值的离群值。
例如
“ Vol”列的所有值都在周围,12xx而一个值是4000(离群值)。
现在,我想排除具有Vol此类列的行。
因此,从本质上讲,我需要在数据帧上放置一个过滤器,以便我们选择某一列的值在均值例如3个标准差以内的所有行。
有什么优雅的方法可以做到这一点?
回答:
如果你的数据框中有多个列,并且希望删除至少一列中具有异常值的所有行,则以下表达式可以一口气做到这一点。
df = pd.DataFrame(np.random.randn(100, 3))from scipy import stats
df[(np.abs(stats.zscore(df)) < 3).all(axis=1)]
描述:
- 对于每列,首先要计算列中每个值相对于列均值和标准差的Z分数。
- 然后取Z分数的绝对值,因为方向无关紧要,只有方向低于阈值时才行。
- all(axis = 1)确保对于每一行,所有列均满足约束。
- 最后,此条件的结果用于索引数据帧。
以上是 Python-检测并排除熊猫数据框中的异常值 的全部内容, 来源链接: utcz.com/qa/416250.html