所以我不确定为什么这种方式有效而不是另一种方式。
我有一个计算值的列,并将其与静态列进行比较。
当我只比较那两个有功能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']))
答案 0 :(得分:1)
不需要apply
或lambda函数 - 只需使用all()
来检查整个系列的真实性。
if (point1 > y1).all() and \
(point3 > y1).all() and \
(point4 < y1).all() and \
(point2 < y1).all():
# ...