gpt4 book ai didi

python - 在点距条件下选择行

转载 作者:行者123 更新时间:2023-12-03 08:50:12 25 4
gpt4 key购买 nike

我有两个数据集犯罪和相机。(第一个图片是犯罪-Lon是经度,Lat是纬度;第二个是相机-X是经度,Y是纬度)

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

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

crime data
camera data
import pandas as pd
from geopy.distance import vincenty

crime = pd.read_csv('/Users/xccxken/Desktop/crime.csv',low_memory=False)
camera = pd.read_csv('/Users/xccxken/Desktop/camera.csv')

def xycamera(id):
row=camera[camera['OBJECTID'] == id]
x = row[['X']]
y = row[['Y']]
return x,y

print (xycamera(89))

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

我有一个ValueError:系列的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()。在
c200 = crime [vincenty((crime ['Lon'],crime ['Lat']),xycamera(89))。feet> 200]

我希望有人能告诉我如何解决它。

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

这是一个如何使用vincenty()的示例
https://pypi.python.org/pypi/geopy(如果需要)
>>> 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]

运行这一行,粘贴您的整个代码,然后在此处粘贴整个回溯

关于python - 在点距条件下选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43112451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com