微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在熊猫数据框中找到经度和纬度两列之间的距离

如何解决如何在熊猫数据框中找到经度和纬度两列之间的距离

我有一个数据框,上面有两个不同的位置。我已经可以使用geolocator和此old Stack Overflow Post找到他们的经度和纬度。现在,我一直在努力寻找这两列位置之间的距离。我一直在跟踪geodesic向我们发送的this website's条信息。

目标是创建第五列,也是最后一列,向我显示位置之间的距离。我收到一条错误消息:

ValueError:从序列创建Point时,其项不得超过3个。

我创建的假数据集只有几个,但请注意我的真实数据集非常大,因此我需要在其中包含NaN的数千行中复制该数据集。待遇是一样的。该逻辑对于我必须如何创建此伪数据集可能没有任何意义,但会引发与原始数据集相同的错误。逻辑将我带到需要处理原始数据的地方,原始数据在两个位置值列中都具有更多唯一值。

 places_data = pd.DataFrame(
{"Place_1": ["disneyland Park","Empire State Building","Yosemite Park","disney World Park","Rockefeller Tower","Grand Canyon"],"Places": ["Peaches","Apples","Peaches","Peaches"]}
      )

 other_places = places_data.copy()

 other_places.loc[(other_places["Places"] == "Peaches"),"Sites"] = "Georgia Aquarium"
 other_places.loc[(other_places["Places"] == "Apples"),"Sites"] = "World of Coca-Cola"

 other_places["Loc_1"] = other_places["Place_1"].apply(geolocator.geocode).apply(lambda x: (x.latitude,x.longitude))
 other_places["Loc_2"] = other_places["Sites"].apply(geolocator.geocode).apply(lambda x: (x.latitude,x.longitude))

 places_data['Loc_1'] = places_data.Place_1.map(dict(other_places[['Place_1','Loc_1']].to_numpy()))
 places_data['Loc_2'] = places_data.Places.map(dict(other_places[['Places','Loc_2']].to_numpy()))


 places_data["distance"] = geodesic(places_data["Loc_1"],places_data["Loc_2"]).miles

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。