如何使用位置之间的正弦距离修复效率低下的嵌套字典

时间:2019-03-25 14:47:42

标签: dictionary nested haversine coding-efficiency

我制作了一个嵌套字典,其中包含位置之间的距离以及所有其他距离。

例如:

{city1 :{city1 : 0, city2: 2, city3: 3, city4: 4}
city2 : {city1: 2, city2: 0, city3: 1, city4:2}
city3 : {…}}

我的代码确实提供了此功能,尽管它的工作效率极低。 我想知道为什么以及如何改进它,因为当我尝试更改它时,代码给出了一个错误,指出元组索引不能是字符串,列表或元组。

所以代码现在可以交付了,但是花费的时间太长了。

我正在寻找一种方法来改进它,并理解为什么它行得通,但是要花这么长时间。

数据是一个包含城市编号以及经纬度坐标的数据框。

   def distances_dict(data):
        all_distances = {}
        for row in data.iterrows():
            all_distances[row[1]['City Nr.']] = {}
            for row2 in data.iterrows():
                all_distances[row[1]['City Nr.']][row2[1]['City Nr.']]= \
                    haversine(row[1][['Lat','Long']],row2[1][['Lat','Long']])
        return all_distances

0 个答案:

没有答案