Я сделал вложенный словарь, который содержит расстояния между местоположениями и все другие расстояния.
например:
{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