为 Haversine 距离准备数据
Prepare data for Haversine distance
我想为 id
的每个唯一值计算 haversine 距离:
from haversine import haversine, Unit
data =
id latitude longitude
a 11 22
a 33 44
b 55 66
b 77 88
c 99 11
c 12 13
start = (11,22) # (lat, lon)
end = (33,44)
haversine(start,end)*1000
如何为其创建循环?因为真实数据有2000+ id
s
有很多关于 Hvaersine 的好问题,但没有关于数据准备的答案。这个问题主要是关于数据准备
2000 不算多,你可以用一个简单的 python 循环处理它。但如果您更喜欢 pandas-native 方法,您可以执行以下操作:
df.groupby('id').apply(lambda g: haversine(g.iloc[0], g.iloc[1])) * 1000
考虑到您的数据集始终有一对点对应每个 id
。
输出:
id
a 3.320380e+06
b 2.601419e+06
c 9.673377e+06
我想为 id
的每个唯一值计算 haversine 距离:
from haversine import haversine, Unit
data =
id latitude longitude
a 11 22
a 33 44
b 55 66
b 77 88
c 99 11
c 12 13
start = (11,22) # (lat, lon)
end = (33,44)
haversine(start,end)*1000
如何为其创建循环?因为真实数据有2000+ id
s
有很多关于 Hvaersine 的好问题,但没有关于数据准备的答案。这个问题主要是关于数据准备
2000 不算多,你可以用一个简单的 python 循环处理它。但如果您更喜欢 pandas-native 方法,您可以执行以下操作:
df.groupby('id').apply(lambda g: haversine(g.iloc[0], g.iloc[1])) * 1000
考虑到您的数据集始终有一对点对应每个 id
。
输出:
id
a 3.320380e+06
b 2.601419e+06
c 9.673377e+06