ValueError: The truth value of an array with more than one element is ambiguous
报错如下:
思考:
定位错误在 if
判断这一块,但是,仍然很困惑为什么会报这个错误,于是我分别打印 data[code]
以及 stock_qua
这样也看不出来有什么问题,于是想阿想。我们将复杂的问题简单化。
现在 data[code]
是一个 Series
数组,而 stock_qua
是一个数值。那也就相当于一个数组跟一个标量比较,得到的就是一个元素为布尔的数组。如下:
那第二点需要明确的是,if
判断的表达式为:if condition is True:pass
也就是说,当满足条件时,就执行该条件内部的代码。但是如果我们的条件返回的为一个数组,数组里面既有 True
、又有 False
的时候,就会使 if
条件判断不知道如何抉择,所以才抛出该异常
解决:
解决该问题的方法就是需要得到一个确切的结果,比如 True
或者 False
。那我们就需要通过 any
或者 all
来实现
当数组中有一个为 True
则为 True
,此时我们使用 any()
。当数组中有一个为 False
则为 False
,此时我们使用 all()
再结合 if
条件判断来使用,就可以啦~
还没有评论,来说两句吧...