【发布时间】:2021-08-03 19:53:29
【问题描述】:
我正在尝试使用 Geopy 从两个不同的 dfs 计算测地线距离。
我想从 df1(纬度、经度坐标的元组)向函数提供一个点,并让它计算 df2 中距该点的距离的新列。然后我希望它返回最小值。
到目前为止,这是我所拥有的:
df1 和 df2 都包含一个名为 [lat_lon] 的列,它是一个坐标元组。
from geopy.distance import geodesic
def get_distance(point, df2):
df2['dist'] = df2.apply(geodesic(point, df2['lat_lon']).miles)
closest = df2.loc[df2['dist'].idxmin()]
return closest
然后我想将此应用于 df1,以便使用最接近的值创建一个新列。
df1['closest_location'] = df1['lat_lon'].apply(lambda x: get_distance(x, df2))
运行最后一行时出现此错误:
ValueError: When creating a Point from sequence, it must not have more than 3 items.
我想我在这里迷失了。
【问题讨论】:
标签: python python-3.x pandas geopy