GeoPandas .sjoin大结果表

问题描述 投票:0回答:1

我有两个数据框,都包含几何列。第一个数据帧包含POLYGONS,而第二个数据帧包含POINT。我的目的是加入数据帧,以便将每个POINT分配给相应的POLYGONDF_polygons具有113704行,DF_points具有23223行。

我使用此代码来连接数据帧(也尝试了'within''contains' ::

points_in_polygons = gpd.sjoin(DF_points, DF_polygons, op='intersects')

问题是,在所有情况下,它都会返回约3.000.000 rows的结果。

可能是什么问题?

python pandas geopandas
1个回答
0
投票

Join操作是DataFrame之间的叉积,结果的一行应满足指定的条件(对于sjoin,它可能是inner,contains,intersects)。 gpd.sjoin(DF_points, DF_polygons, op='within')的使用适合您的情况。预期结果将产生具有行数<= 113704 X 23223的DataFrame。

简而言之,必须有一个以上的POYGONS涵盖一个POINT。因此,对于同一点,您将观察多个条目。

© www.soinside.com 2019 - 2024. All rights reserved.