使用另一个数据框计算纬度/经度的大型数据集的Haversine距离,然后使用Python返回相应的数据

时间:2019-05-17 16:54:04

标签: python python-3.x pandas numpy haversine

我有超过一百万行的经度位置。我的目标是对照具有中央纬度经度的大约43000个邮政编码的数据集检查每行。

我想使用大型ZipCodes列表来计算每行之间的正弦距离。然后,我想获取最接近的纬度/经度,并将其或相应的邮政编码返回最左侧的帧(本质上,将最接近的ZipCode赋予大帧中的纬度/经度。

我已经尝试了多种方法,包括向量化的haversine函数以及遍历每一行,进行计算并移至下一行,但是我无法完全使它们起作用。考虑到我的数据量很大,我知道单单遍历每一行并进行计算是行不通的。我需要一个新的解决方案。我认为可能涉及矢量化。

这是我的数据的一些示例框架。 df是我要计算的最大帧距zip_list的最小距离,并将相应的邮政编码返回到大帧。

    df = pd.DataFrame(np.array([[42.801104,-76.827879],[38.187102,-83.433917], 
   [35.973115,-83.955932]]), columns = ['Lat', 'Long'])

    zip_list = pd.DataFrame(np.array([[49544, 42.999561,-85.75371],[49648, 
    45.000254,-85.3651],[49654, 45.023384,-85.75697],[50265, 
    41.570916,-93.73568]]), columns = ['ZipCode', 'Latitude', 'Longitude'])

我想将最小距离的邮政编码返回到df帧中的相应行。

任何想法都很棒。我是矢量化和numpy / pandas的初学者。

0 个答案:

没有答案