Я пытаюсь вычислить расстояние между двумя точками DataFrame. Если я входные строки непосредственно я получаю следующий вывод:Получение другого результата для DataFrame и нормальная реализация того же кода
loca1 = [12.9404578177, 77.5548244743]
loca2 = [12.9404578177, 77.5548244743]
print vincenty(loca1,loca2).meters
>>>0.0
При реализации же с Dataframe я получаю следующий вывод:
from geopy.distance import vincenty
for i in range(len(cleandata)):
if i < 303708:
location2 = cleandata.iloc[i]['location']
location1 = cleandata.iloc[i+1]['location']
cleandata.iloc[i]['distance'] = vincenty(location1, location2).meters
else:
print i
print cleandata.loc[1]['distance']
>>>*13921
cleandata['location']
имеет точно такие же координаты строк я вставил в 1-й код. Я проверил в обоих случаях переменные, входящие в функцию vincety, являются списками.
Как объяснить и исправить это странное поведение?
Это потому, что вы печати 'loc', а не' iloc'? – samGbos
Нет, iloc используется, когда вы являетесь целым числом indexthis case 'i', в то время как loc используется, когда вы хотите использовать индекс метки здесь 'distance' – Nishad