Как исправить неэффективный вложенный словарь с haversine расстояниями между локациями - PullRequest
0 голосов
/ 25 марта 2019

Я сделал вложенный словарь, который содержит расстояния между местоположениями и все другие расстояния.

например:

{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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...