您的位置:首页 > 产品设计 > UI/UE

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.al

2018-03-08 11:10 711 查看

解决方案

本文中的解决方法,只限于一部分问题,可能不通用。因为楼主在跑python代码时经常遇到这个问题,以前是怎么解决的都已经忘记了,今天又查了一大通,故记录下来:

training_examples["latitude_0_to_35"]=1 if (training_examples["latitude"]>=0 and training_examples["latitude"]<=35) else 0
# 想用这样的赋值语句,结果报错了(PS: training_examples是dataframe类型)

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()


故想实现上面的方法,改用如下方案:

training_examples["latitude_0_to_35"]= (training_examples["latitude"]>=0) & (training_examples["latitude"]<=35)
# 此处用 & 应该是因为training_examples["latitude"]存在多个value值,得“按位”比较。如果是单纯的数值用and就是可以的,可见最后的例子。
training_examples["latitude_0_to_35"] = training_examples["latitude_0_to_35"].astype('int')
#这一步是将得到的true和false转化为1和0,直接bool型变为int型

IN:  a = 1 if (3>2 and 4>3) else 0
IN:  a
OUT: 1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐