Python如何创建一个新的列来测量与城市的距离



我有一个带有纬度和经度列的数据帧,

df = pd.DataFrame({'Latitude':[47.5112, 47.7210, 47.7379, 47.5208, 47.6168],
'Longitude':[-122.257, -122.319, -122.233, -122.393, -122.045]})

我如何创建一个列,用坐标(47.631872,-122.217109(测量到特定位置的距离

特别地,我想使用geopy中的geodesic函数来表示距离:from geopy.distance import geodesic。它接受包含纬度和经度的2个元组的输入,并输出距离。

使用apply

location = (47.631872, -122.217109)
df["distance"] = df.apply(lambda x:geodesic((x["Latitude"], x["Longitude"]), location), axis=1)

假设您想在DataFrame中创建一个具有所需距离的新列:

location = (40.5, 47.7) # example of coordinates of your desired location, change as needed
df["Distance To Location"] = geodesic((df["Latitude"],df["Longitude"]),location)

现在,您的数据框架将有第三列,其中有一个指针指向pandas系列测地线对象,这些对象来自所提供的每一行和位置坐标。

可选地,如果你只想要实际距离值(float(;英里;你可以这样做:

# To get the float value of the distance in miles
df["Distance To Location"] = geodesic((df["Latitude"],df["Longitude"]),location).miles

它应该将每行的浮动值(以英里为单位(直接保存到数据帧中。

最新更新