【发布时间】:2019-03-07 15:45:03
【问题描述】:
我正在尝试使用 df(以下 7 行采样)来提取满足 3 个条件的任意两行:
- 第一个位置之间的距离小于 x 英里使用 Haversine
- 使用 Haversine 与第二个位置之间的距离小于 x 英里
- 创建时间的差异小于 x 分钟
Haversine 只是简单地内置在 python 中
示例
from haversine import haversine
lyon = (45.7597, 4.8422) # (lat, lon)
paris = (48.8567, 2.3508)
haversine(lyon, paris, unit='mi')
243.71201856934454 # in miles
当我说第一个位置之间的差异时,这只是第一个位置之间的差异,不考虑第二个位置或第二个坐标(因此任何两个订单第一个位置之间的 x 英里差异和任何两个之间 x 英里的差异订购第二个位置)
DAY Order 1st_latitude 1st_longitude 2nd_latitude 2nd_longitude created_time
1/3/19 234e 32.69 -117.1 32.63 -117.08 3/1/19 19:00
1/3/19 235d 40.73 -73.98 40.73 -73.99 3/1/19 23:21
1/3/19 253w 40.76 -73.99 40.76 -73.99 3/1/19 15:26
2/3/19 231y 36.08 -94.2 36.07 -94.21 3/2/19 0:14
3/3/19 305g 36.01 -78.92 36.01 -78.95 3/2/19 0:09
3/3/19 328s 36.76 -119.83 36.74 -119.79 3/2/19 4:33
3/3/19 286n 35.76 -78.78 35.78 -78.74 3/2/19 0:43
感谢观看
【问题讨论】:
-
我听不懂
Distance between 1st location。能举个分步计算的例子吗? -
抱歉 - 第一个位置之间的距离将是数据框中彼此相距小于 x 英里或相距 x 英里的任何订单。因此,使用 Haversine 将计算第 1 lat 和 1st long 的行和第 1 lat 和 1st long 的行之间的差异,这有意义吗? @giser_yugang
-
@Chris90 你应该想出评估为
True或False的条件,然后将它们输入到我给出的答案中。 -
我明白你的答案是什么,但我不知道如何应用它来计算数据框中各行之间的差异
标签: python pandas filter difference haversine