Localizando valores mais curtos entre as cidades em um dataframe

Eu tenho um quadro de dados com cidades e distância entre outras cidades de cada cidade. Meu conjunto de dados se parece com,

df,

 From City      City A  City B City C  City D
 City A                 2166    577     175
 City B         2166            1806    2092
 City C         577     1806            653
 City D         175     2092    653 

Estou planejando visitar todas as cidades, estou tentando descobrir em que ordem das cidades posso viajar com a menor distância. Eu quero terminar com uma posição inicial.ponto inicial e final devem ser os mesmos.

Existe uma maneira de encontrar essa distância mais curta em todas as cidades, ou qualquer outra abordagem está disponível. por favor ajude.

questionAnswers(0)

yourAnswerToTheQuestion