为了账号安全,请及时绑定邮箱和手机立即绑定

geopandas:索引 contains() 方法的歧义

geopandas:索引 contains() 方法的歧义

冉冉说 2023-09-12 17:44:20
我有一个简单的点地理数据框架,如下所示:        name        geometry0       Location1   POINT (9.71852 50.56186)1       Location2   POINT (9.72912 50.55847)另一方面,我有一个更复杂的 GeoDataFrame,它由多边形组成。我的目标是如果某个点位于多边形区域中,则使用其他 GDF 的一些信息更新我的点 GDF。所以我想使用 contains() 方法来检查哪些多边形包含一个点。我用一个简单的布尔掩码进行了测试:mask = polygons.contains(points.loc[0,'geometry'])selection = polygons.loc[mask]显然,选择返回一个与第一行 GDF 点匹配的多边形。我想考虑 GDF 的所有行,例如:mask = polygons.contains(points['geometry'])这个面具不起作用,我猜这是一个索引问题,但我不知道如何修复它......
查看完整描述

1 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

现在这实际上是预期的行为。GeoSeries.contains是按行操作,这意味着如果您这样做polygons.contains(point),它将首先对齐两个 GeoSeries,然后检查第 0 行上的多边形是否包含第 0 行上的点等。

在你的情况下,这可能看起来类似于:

points_with_data = geopandas.sjoin(points, polygons, how='left')


查看完整回答
反对 回复 2023-09-12
  • 1 回答
  • 0 关注
  • 165 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信