在Geopandas中合并Zip Code多边形为MultiPolygon时汇总列数据
解决方法
直接使用GeoPandas的dissolve方法即可完成按area#分组合并几何并汇总人口的需求,这是GeoPandas专门为空间数据聚合优化的功能,比普通groupby更高效适配。
核心代码
# 假设你的GeoDataFrame变量名为gdf aggregated_gdf = gdf.dissolve( by='area#', aggfunc={'population': 'sum'}, as_index=False )
代码说明
by='area#':指定按area#字段分组aggfunc={'population': 'sum'}:对population列执行求和汇总as_index=False:保持area#为普通数据列,而非DataFrame索引,方便后续操作
额外处理(可选)
如果需要强制将所有几何类型转为MultiPolygon(即使单Polygon的情况),可以添加以下转换逻辑:
from shapely.geometry import MultiPolygon def convert_to_multipolygon(geom): return geom if isinstance(geom, MultiPolygon) else MultiPolygon([geom]) aggregated_gdf['geometry'] = aggregated_gdf['geometry'].apply(convert_to_multipolygon)
结果验证
执行后可以通过以下命令确认结果:
# 查看前几行数据结构 aggregated_gdf.head() # 查看几何类型分布 aggregated_gdf.geometry.type.value_counts()
内容的提问来源于stack exchange,提问作者artodito
相关产品推荐
相关产品推荐

