Python 使用geopy.distance进行批量计算

Python 使用geopy.distance进行批量计算,python,gis,geopy,Python,Gis,Geopy,我有两个位置列表作为csv文件(mlloc和cfloc),格式相同,标题如下: 索引|格式化|地址|纬度|经度|邮政编码|输入|字符串|结果编号|状态 我希望测量mlloc中每个位置(由纬度和经度定义)与cfloc中每个位置之间的距离。我已经使用geopy.distance来测量单个对,但我还没有设法使用它来测量这个成对矩阵 我尝试了以下方法,返回一个距离 如果我能将我们测量的每一对点的格式化的_地址值附加到结果中,那将是一个额外的收获 #import from geopy import di

我有两个位置列表作为csv文件(mlloc和cfloc),格式相同,标题如下:

索引|格式化|地址|纬度|经度|邮政编码|输入|字符串|结果编号|状态

我希望测量mlloc中每个位置(由纬度和经度定义)与cfloc中每个位置之间的距离。我已经使用geopy.distance来测量单个对,但我还没有设法使用它来测量这个成对矩阵

我尝试了以下方法,返回一个距离

如果我能将我们测量的每一对点的格式化的_地址值附加到结果中,那将是一个额外的收获

#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)