У меня есть два списка местоположений в виде csv-файлов (mlloc и cfloc) в одном формате со следующими заголовками:
index | formatted_address | широта | долгота | почтовый индекс | input_string | number_of_results | status
Я хочу измерить расстояние между каждым местоположением (как определено широтой и долготой) в mlloc и каждым местоположением в cfloc.Я использовал geopy.distance для измерения отдельных пар, но мне не удалось использовать его для измерения этой попарной матрицы.
Я пробовал следующее, которое возвращает одно расстояние.
Было бы бонусом, если бы я мог прикрепить к результатам значение formatted_address для каждой пары точек, между которыми мы измеряем.
#import
from geopy import distance as geopy_distance
import pandas as pd
import csv
#define inputs
ml_filename = 'C:/Users/hc/Desktop/mlloc.csv'
cf_filename = 'C:/Users/hc/Desktop/cf.csv'
#read data
mldata = pd.read_csv(ml_filename)
cfdata = pd.read_csv(cf_filename)
#create dataframes
mldata = pd.DataFrame(mldata)
cfdata = pd.DataFrame(cfdata)
#drop NaN
mldata = mldata.drop(mldata[mldata.status != 'OK'].index)
cfdata = cfdata.drop(cfdata[cfdata.status != 'OK'].index)
#check
print(cfdata.head())
#loop through each dataframe
results = []
for i in range (1, len(mldata)):
for j in range (1, len(cfdata)):
#distance calculation
distance = geopy_distance.distance((mldata.iloc[i , 2], mldata.iloc[i , 3]), (cfdata.iloc[j , 2], cfdata.iloc[j , 3]))
answer = [distance, i, j]
results.append(answer)
print(results)