我正在尝试从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 ....
np.abs(stats.zscore(df_final['rating'])) < 3