测量来自不同数据框的两点之间的距离

时间:2019-08-20 17:36:00

标签: python pandas

我有两个数据帧(df1和df2)。两个数据帧具有不同的长度。 df1包含有关各种事件的信息,而df2包含特定的位置坐标。对于df1中的每个事件,我要测量其与df2中每个位置的距离。所需的输出是一个数据帧,其中包含距离df2的位置点不到1英里的事件。实现这一目标的最佳方法是什么?任何帮助将不胜感激!数据框示例和所需的输出如下:

df1 

  date       lat     long      event 

10.02.91   32.2324  -98.1311   event_A
12.05.89   45.3134  -79.3244   event_B
14.06.90   23.1332  -45.0098   event_C


df2

  Latitude_1   Longitude_2   

   12.3456    90.03421   
   12.3234    89.34134   
   14.2344    78.13432   
   45.2453    89.23255   
   44.2345   -10.2344    

所需的输出:

 date     Lat      Long    event distance Latitude_1 Latitude_2 

12.05.89 45.3134 -79.3244 event_B  0.2     12.3456    90.03421
12.05.89 45.3134 -79.3244 event_B  0.1     12.3234    89.34134
12.05.89 45.3134 -79.3244 event_B  0.6     45.2453    89.23255
14.06.90 23.1332 -45.0098 event_C  0.3     12.3456    90.03421

1 个答案:

答案 0 :(得分:1)

您可以使用geoPy模块来测量经度和纬度两个点之间的距离。至于如何实现每一对,我只需要使用熊猫的merge来合并两个数据帧,为距离添加一列,然后使用geopy遍历每一行并将结果设置为distance