【发布时间】:2015-02-12 09:20:17
【问题描述】:
在给定点坐标和单元格边界坐标的情况下,我必须通过两个 pandas 数据框找出哪些点位于方形单元格网格内。 我正在调用 dfc 包含代码和单元格边界坐标的数据框(我简化了问题,在实际分析中,我有一个带有地理点和大量要检查的点的大网格):
Code,minx,miny,maxx,maxy
01,0.0,0.0,2.0,2.0
02,2.0,2.0,3.0,3.0
和 dfp 包含 Id 和点坐标的数据框:
Id,x,y
0,1.5,1.5
1,1.1,1.1
2,2.2,2.2
3,1.3,1.3
4,3.4,1.4
5,2.0,1.5
现在我想执行一个搜索,在 dfc 数据帧中返回一个新列(称为“GridCode”),该列是该点所在的网格。单元格应该是完全平方的,所以我想通过以下方式进行分析:
a = np.where(
(dfp['x'] > dfc['minx']) &
(dfp['x'] < dfc['maxx']) &
(dfp['y'] > dfc['miny']) &
(dfp['y'] < dfc['maxy']),
r2['Code'],
'na')
避免数据帧上的多个循环。数据帧的长度不一样。生成的数据框应如下所示:
Id x y GridCode
0 0 1.5 1.5 01
1 1 1.1 1.1 01
2 2 2.2 2.2 02
3 3 1.3 1.3 01
4 4 3.4 1.4 na
5 5 2.0 1.5 na
提前感谢您的帮助!
【问题讨论】:
标签: python pandas dataframe points spatial-query