我有一个名为 myvolabserr
的数据框,我想计算每列中值的百分比>10%。
我这样做的方式是
我正在做第一步,我试过了
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
谁能帮忙解决这个错误?
也许有没有其他方法可以一次性计算异常值的百分比,而不是我的两步法?
答案 0 :(得分:0)
这里不需要循环,将值转换为数字并按标量进行比较:
out = myvolabserr.astype(float) > 0.1
对于百分比,使用 mean
- True
像 1
一样处理:
s = out.mean()