python - 如何使用 pandas 和 python 来评估用户位于多少个地理框内?

标签 python python-3.x pandas geolocation geo

我正在尝试弄清楚 Uber 和 UbersEats 等应用程序如何运营和管理物流。我想知道我们如何构建一个函数来计算用户位于多少个盒子内。 这是用户的数据:

user_id,loc_lat,loc_lon
1,55.737564,37.345186
2,56.234564,37.234590
3,55.234578,36.295745

这是盒子(地点)的坐标:

place_id,loc_lat,loc_lon,point_number
1,55.747022,37.787073,0
1,55.751713,37.784328,1
1,55.753878,37.777638,2
1,55.751031,37.779351,3
2,55.803885,37.458311,0
2,55.808677,37.464054,1
2,55.809763,37.461314,2
2,55.810840,37.458654,3

因此,对于用户 1 来说,将有 2 个可用位置,而对于用户 3 来说,将有 0 个位置。 如果您能为我指明正确的方向,我将不胜感激。

最佳答案

从用户的测试用例来看:没有一个在盒子的范围内。遵循以下逻辑 How can I determine whether a 2D Point is within a Polygon?

// p is your point, p.x is the x coord, p.y is the y coord
if (p.x < Xmin || p.x > Xmax || p.y < Ymin || p.y > Ymax) {
    // Definitely not within the polygon!
}

在 Python 中加载 DataFrame:

import pandas as pd
columns = ['user_id','loc_lat','loc_lon','point_number']
df = pd.DataFrame([[1,55.747022,37.787073,0],[1,55.751713,37.784328,1],[1,55.753878,37.777638,2],[1,55.751031,37.779351,3]], columns = columns)

关于python - 如何使用 pandas 和 python 来评估用户位于多少个地理框内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64978653/

相关文章:

python - 如何从 Python 3.7 docker 镜像运行 SSL_library_init()

python - 使用 Python 3 捕获 192 kHz 音频

python - setUpClass() 缺少 1 个必需的位置参数 : 'cls'

python-3.x - 具有互补零的 Pandas 标志行

python - 计算与 Pandas 的滚动相关性

python - Python 数据框中的插值

python - 插入重复键错误后 SELECT 失败

Python如何为所有子类的联合定义类型提示

python - 链表 Python 2.7

python - 如何在不更改任何默认值的情况下在 Ubuntu 上为 python 3.8 安装 pip?