我有一个数据框,在索引中有一个位置的名称,有两列,纬度和经度
data = {'LE0039': {'LATITUDE': 59.522583, 'LONGITUDE': 29.566056},
'LE0073': {'LATITUDE': 59.287991, 'LONGITUDE': 31.369472},
'LE0142': {'LATITUDE': 59.350241, 'LONGITUDE': 32.531339},
'LE0278': {'LATITUDE': 59.96475, 'LONGITUDE': 29.19585}}
df = pd.DataFrame.from_dict(data, 'index')
LATITUDE LONGITUDE
LE0039 59.522583 29.566056
LE0073 59.287991 31.369472
LE0142 59.350241 32.531339
LE0278 59.964750 29.195850
我需要计算从一个站点到任何其他站点的最小距离,并将其存储在每个站点的第三列中。我想用scipy.spatial.distance.pdist()计算距离矩阵,但为了计算,我首先需要一个带有(纬度、经度)的新列,以便将其传递给pdist()
所以我有两个问题。一个是如何将lat和long组合成一个数组(lat,long),另一个是如果您认为有更好的方法来计算最小距离
使用好的旧组合
list
+zip
zip
创建配对对象,list创建列表,以便将其分配给数据帧输出:
旁注:我对十进制展开很感兴趣,不知道为什么会有000005
关于距离,
numpy
和scipy
应该有太多的选择,比我所熟悉的要多,所以在谷歌上快速搜索后,你应该会找到很多好的选择:)我通常坚持使用pdist()相关问题 更多 >
编程相关推荐