Я пытаюсь рассчитать расстояние между широтой и долготой, используя геопию на Pandas фрейме данных.
вот мой фрейм данных:
latitude longitude altitude
-15.836310 -48.020298 1137.199951
-15.836360 -48.020512 1136.400024
-15.836415 -48.020582 1136.400024
-15.836439 -48.020610 1136.400024
-15.836488 -48.020628 1136.599976
Я пробовал два разных способа:
from geopy import distance
for i in range(1, len(df)):
before = (df.loc[i-1, 'latitude'], df.loc[i-1, 'longitude'])
actual = (df.loc[i, 'latitude'], df.loc[i, 'longitude'])
df.loc[i, 'geodesic'] = distance.distance(before, actual).miles
ошибка:
KeyError: 0
По-видимому, df.loc[i, 'column_name']
не работает.
и:
from geopy import distance
df['geodesic'] = distance.distance((df.latitude.shift(1), df.longitude.shift(1)), (df.latitude, df.longitude)).miles
Ошибка:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Официальная документация GeoPy:
from geopy import distance
newport_ri = (41.49008, -71.312796)
cleveland_oh = (41.499498, -81.695391)
print(distance.distance(newport_ri, cleveland_oh).miles)