我有一个数据框,上面有两个不同的位置。我已经能够使用geolocator
和使用这个旧的 Stack Overflow Post找到他们的经度和纬度。现在我被困在试图找到这两列位置之间的距离。我一直在关注这个网站的信息,试图geodesic
按照它的指示向我们展示。
目标是创建第五列也是最后一列,向我显示我的位置之间的距离。我收到一条错误消息:
ValueError:从序列创建点时,它不能超过 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", "Apples", "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