熊猫系列:布尔值的真值是不明确的

时间:2017-10-31 18:20:43

标签: python pandas series calculated-columns

所以我不确定为什么这种方式有效而不是另一种方式。

我有一个计算值的列,并将其与静态列进行比较。

当我只比较那两个有功能print(column1> column2)时,我得到一系列很好的True / False值。

所以它在那里工作,但当我尝试将相同的不等式合并到if / else语句时,它会启动以下错误:

ValueError:系列的真值是不明确的。使用a.empty,a.bool(),a.item(),a.any()或a.all()。

为什么?

以下是代码:

def airportcheck(x1, y1):
    point1 = line(line1m, line1b, x1, y1)
    point2 = line(line2m, line2b, x1, y1)
    point3 = line(line3m, line3b, x1, y1)
    point4 = line(line4m, line4b, x1, y1)
    if point3>=y1:
        print(1)
    print(point3>y1)
    #if point1 > y1 and point3 > y1 and point4 < y1 and point2 < y1:
    #    return 1
    #else:
    #    return 0


df_data['Airport'] =(airportcheck(df_data['Pickup_longitude'], df_data['Pickup_latitude']))

1 个答案:

答案 0 :(得分:1)

不需要apply或lambda函数 - 只需使用all()来检查整个系列的真实性。

if (point1 > y1).all() and \
   (point3 > y1).all() and \
   (point4 < y1).all() and \
   (point2 < y1).all():
    # ...