Массовый расчет с использованием geopy.distance - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть два списка местоположений в виде 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...