Для кадра данных, который имеет 4 столбца координат (долгота, широта), я хотел бы создать 5-й столбец, который имеет расстояние между обоими местами для каждого столбца, ниже иллюстрирует это:
dict = [{'x1': '1','y1': '1','x2': '3','y2': '2'},
{'x1': '1','y1': '1','x2': '3','y2': '2'}]
data = pd.DataFrame(dict)
Как результат, который я хотел бы получить:
dict1 = [{'x1': '1','y1': '1','x2': '3','y2': '2','distance': '2.6'},
{'x1': '1','y1': '1','x2': '3','y2': '2','distance': '2.9'}]
data2 = pd.DataFrame(dict)
Где расстояние вычисляется с использованием geopy.distance import great_circle:
Это то, что я пробовал:
data [ 'distance'] = data [['x1', 'y1', 'x2', 'y2']]. apply (лямбда x1, y1, x2, y2: great_circle (x1, y1, x2, y2). мили, axis = 1)
Но это приводит к ошибке типа:
TypeError: () отсутствует 3 обязательных позиционных аргумента: 'y1', 'x2' и 'y2'
Любая помощь приветствуется.