最近在使用joinquant写股票回测策略的时候 出现了ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().的错误 代码如下:
roe = df['roe']
print(type(roe))
if roe < 0.1:
order_target(security ,0)
else:
list0.append(security)
看错误提示感觉是 比较大小的时候数据类型不匹配 输出roe的数据类型
>>INFO - <class 'pandas.core.series.Series'>
行吧 直接float(roe ) 强制改成 浮点型 就Ok 了。
再次运行 一切 正常 然后 继续出错 TypeError: cannot convert the series to <class 'float'>
这个更简单 一猜就知道是 大数据里边有异常值 异常数据转换会出错
2015-12-30 09:30:00 - INFO - 0 1.83
2015-12-30 09:30:00 - INFO - Series([], Name: roe, dtype: object)
2015-12-30 09:30:00 - INFO - 0 3.65
因为这条数据并不影响大局 直接加个try:except:的异常处理略过这条错误数据就行了