Pandas 如何按自定义区域进行聚合?
我有一个geojson文件,它定义了区域(作为多边形)。当我使用Pandas 如何按自定义区域进行聚合?,pandas,shapely,geopandas,Pandas,Shapely,Geopandas,我有一个geojson文件,它定义了区域(作为多边形)。当我使用geopandas将其加载为df_区域时,它看起来如下所示: id geometry 0 a9d04068-7220-433d-bbcf-50c51c1ee243 POLYGON ((13.43715051671244 52.48283068240888,...
geopandas
将其加载为df_区域
时,它看起来如下所示:
id geometry
0 a9d04068-7220-433d-bbcf-50c51c1ee243 POLYGON ((13.43715051671244 52.48283068240888,...
1 9fd4ec97-db2c-4a40-b0ff-b54976bf4784 POLYGON ((13.4383267580672 52.4822756653842, 1...
2 43c2ad0a-51c0-45ff-aab3-51dbfb1119e9 POLYGON ((13.44054177168731 52.48185471774156,...
3 5cd2aa14-5265-432b-a13e-aa99d1fb94ca POLYGON ((13.43429163342489 52.48417966481776,...
4 1e6c7de6-aa7d-4828-97d8-393738fd6df4 POLYGON ((13.43611174444709 52.48332083376235,...
5 409982b2-d638-4682-b9d1-76e2a9786103 POLYGON ((13.4383267580672 52.48283068240888, ...
然后我有一个dfu data
,它有一列geometry
,其中shapely.geometry.Point
作为值。我想得到一个热图,其中每个单元格是df_areas
中定义的区域之一,该值是df_data.geometry
中位于该区域的点的计数
我怎样才能做到这一点?解决方案是使用
要求:
$ sudo apt-get install libspatialindex-dev
$ pip3 install rtree --user
要获取联接的数据集,请执行以下操作:
# gdf contains Points in the 'geometry' column
# world contains Polygons in the 'geometry' column
df_joined = gpd.sjoin(gdf, world, op='within')
您可以使用该包从df\u区域
构建空间索引rtree
然后允许每个点有效地找到可能包含它的候选区域,以便您可以显式地测试它们,如果找到匹配项,则增加计数器。。。