, если вы просто хотите рассчитать расстояние, вот одно из решений:
from geopy.distance import lonlat, distance
data = """
id lon_origin lat_origin lon_destination lat_destination
0 -116.284 43.617 -116.304 43.608
1 -116.291 43.610 -116.304 43.608
"""
df = pd.read_csv(pd.compat.StringIO(data), sep='\s+')
df['KM'] = df.apply(
(lambda row:distance(lonlat(row['lon_origin'], row['lat_origin']),
lonlat(row['lon_destination'], row['lat_destination'])).km), axis=1)
print(df)
выход:
id lon_origin lat_origin lon_destination lat_destination KM
0 0 -116.284 43.617 -116.304 43.608 1.89910
1 1 -116.291 43.610 -116.304 43.608 1.07277
Если вы хотите использовать Мили, просто измените метрику:
df['MILES'] = df.apply(
(lambda row:distance(lonlat(row['lon_origin'], row['lat_origin']),
lonlat(row['lon_destination'], row['lat_destination'])).miles), axis=1)
id lon_origin lat_origin lon_destination lat_destination MILES
0 0 -116.284 43.617 -116.304 43.608 1.180046
1 1 -116.291 43.610 -116.304 43.608 0.666588