计算数据框每一列中异常值的百分比

Calculate percentage of outliers in each column of a dataframe

我有一个名为 myvolabserr 的数据框,我想计算每列值 >10% 的百分比。
我这样做的方式

  1. 检查该值是否是新数据框的离群值,该数据框由 T/F(如果值>10% 则为 T)
  2. 计算每列中T值的百分比

我在做第一步,我试过了

out = myvolabserr
for i in range(0, len(out.axes[1])):
    out.iloc[:,i] = myvolabserr.iloc[:,i].apply(lambda x: 'True' if x > 0.1 else 'False')
print(out)

但是我说

时出错
'>' not supported between instances of 'str' and 'float'

然后我检查我的 df myvolabserr:

的类型
                             ticker
Absolute Error (Volatility)  AAPL      float64
                             AMD        object
                             BIDU      float64
                             GOOGL     float64
                             IXIC      float64
                             MSFT      float64
                             NDXT      float64
                             NVDA      float64
                             NXPI      float64
                             QCOM      float64
                             SWKS      float64
                             TXN       float64
dtype: object

任何人都可以帮助解决这个错误吗?
也许还有其他方法可以一次性计算异常值的百分比,而不是我的两步法吗?

此处不需要循环,将值转换为数字并按标量进行比较:

out = myvolabserr.astype(float) > 0.1

对于百分比使用 mean - Trues 的处理方式类似于 1s:

s = out.mean()