Python 在点距离条件下选择行

Python 在点距离条件下选择行,python,pandas,select,error-handling,distance,Python,Pandas,Select,Error Handling,Distance,我有两个数据集犯罪和摄像机。(第一张照片是犯罪——Lon是经度,Lat是纬度;第二张是摄像机——X是经度,Y是纬度) 我的目的是选择摄像机89内距离小于200英尺的所有犯罪('OBJECTID'=89)。在sql中,它应该是 select* from crime where "distance with camera89" < 200feet 我有一个ValueError:序列的真值是模糊的。使用a.empty、a.bool()、a.item()、a.any()或a.all()。在里面

我有两个数据集犯罪和摄像机。(第一张照片是犯罪——Lon是经度,Lat是纬度;第二张是摄像机——X是经度,Y是纬度)

我的目的是选择摄像机89内距离小于200英尺的所有犯罪('OBJECTID'=89)。在sql中,它应该是

select*
from crime
where "distance with camera89" < 200feet

我有一个ValueError:序列的真值是模糊的。使用a.empty、a.bool()、a.item()、a.any()或a.all()。在里面 c200=犯罪[vincenty((犯罪['Lon'],犯罪['Lat']),xycamera(89))。英尺>200]

我希望有人能告诉我如何修理它

如果有更好的方法来实现我的目标,那就更好了。谢谢

下面是一个如何使用vincenty()的示例 如果你需要

>>> from geopy.distance import vincenty
>>> newport_ri = (41.49008, -71.312796)
>>> cleveland_oh = (41.499498, -81.695391)
>>> print(vincenty(newport_ri, cleveland_oh).miles)
538.3904451566326

我不知道
vincenty()
如何期望您的坐标(元组或诸如此类),但可以肯定的是,您在最后一行中缺少了一个左括号。(或者你有一个额外的结束语)。根据您的示例,
.feet
后面的括号可能是多余的

试试这个:

cameraCoords = xycamera(89)
vincenty((11,11),(12,12)).feet
crime[vincenty((crime['Lon'],crime['Lat']),cameraCoords ).feet>200]

运行此程序,粘贴整个代码,并将整个回溯粘贴到此处

谢谢。我已经像你说的那样解决了括号的问题。它起作用了。但是现在有一个新的错误。如果你有时间,希望你能帮助我。有什么新的错误吗?xycamera(89)的输出是什么?值错误:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()(X 87-77.628824,Y 87 43.13503)结果如下(X 87-77.628824,Y 87 43.13503)xycamera(89)的输出如下
cameraCoords = xycamera(89)
vincenty((11,11),(12,12)).feet
crime[vincenty((crime['Lon'],crime['Lat']),cameraCoords ).feet>200]