Pandas 如何按自定义区域进行聚合?

Pandas 如何按自定义区域进行聚合?,pandas,shapely,geopandas,Pandas,Shapely,Geopandas,我有一个geojson文件,它定义了区域(作为多边形)。当我使用geopandas将其加载为df_区域时,它看起来如下所示: id geometry 0 a9d04068-7220-433d-bbcf-50c51c1ee243 POLYGON ((13.43715051671244 52.48283068240888,...

我有一个geojson文件,它定义了区域(作为多边形)。当我使用
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
然后允许每个点有效地找到可能包含它的候选区域,以便您可以显式地测试它们,如果找到匹配项,则增加计数器。。。