Python:如何在数据框的特定列中找到异常值

问题描述 投票:0回答:1

我正在尝试从Python数据框的特定列中删除异常值。我从几年前的帖子中找到了一个可行的解决方案,但在整个数据框中进行了搜索:

df_final[(np.abs(stats.zscore(df_final)) < 3).all(axis=1)]

由于我的数据框具有不同的数据类型,例如日期,所以在运行它时出现以下错误

TypeError: unsupported operand type(s) for +: 'Timestamp' and 'Timestamp'

我觉得仅获取单个列的异常值的解决方案应该很容易,但是当我尝试时

df_final[(np.abs(stats.zscore(df_final['rating'])) < 3).all(axis=1)]

仅获得rating列的异常值,我得到一个错误

AxisError: axis 1 is out of bounds for array of dimension 1

我知道(认为吗?),这个问题与创建的数组有关,但是我对它的理解还不够,无法找到解决方案。谁能更好地向我解释?

编辑:似乎df_final[(np.abs(stats.zscore(df_final['rating'])) < 3)]有效。坦率地说,我不确定其背后的原因,因此我仍然对有人可以解释或有更好的解决方案感兴趣。

我正在尝试从Python数据框的特定列中删除异常值。我从几年前的帖子中找到了一种可行的解决方案,但在整个数据框中进行了搜索:df_final [(np ....

python pandas dataframe outliers
1个回答
0
投票
np.abs(stats.zscore(df_final['rating'])) < 3
© www.soinside.com 2019 - 2024. All rights reserved.