我正在构建一个函数来计算起始纬度和经度之间的距离,以及停止纬度和经度。我做了一个变量,它工作正常,但是当我创建一个函数时,我收到了消息;
'系列的真实价值是模棱两可的。使用a.empty,a.bool(),a.item(),a.any()或a.all()。','发生在索引0'
以下是我的功能。任何帮助将不胜感激! (注意,使用的列没有空值,并且都是float64。订单是正在使用的数据帧。)。
def distance_calc (row):
start = (orders['start_lat'], orders['start_lon'])
stop = (orders['stop_lat'], orders['stop_lon'])
return great_circle(start,stop).meters
orders['distance'] = orders.apply(lambda orders: distance_calc (orders), axis=1)
需要选择Series
称为row
而不是orders
:
def distance_calc (row):
start = (row['start_lat'], row['start_lon'])
stop = (row['stop_lat'], row['stop_lon'])
return great_circle(start,stop).meters
#lambda is not necessary
orders['distance'] = orders.apply(distance_calc, axis=1)