You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.boundary生成的GeoSeries存入GeoDataFrame自动转为pandas.Series求助

问题原因

你没有操作错误,这个是GeoPandas旧版本的默认行为:

  • 0.9.x及更早版本的GeoDataFrame默认仅支持1个激活几何列,只有这个列会被保留为GeoSeries类型,其余存储几何对象的列在直接赋值时会被自动转换为普通pandas.Series,哪怕列的dtype显示为geometry也不例外。
  • 官方指南示例基于0.10.0及以上版本的GeoPandas运行,该版本开始优化了多几何列的支持逻辑,直接赋值几何类新列会自动保留GeoSeries类型。

解决方法

你可以选择任意一种方案解决这个问题:

  1. 如果需要将新的bd列作为激活几何列,使用set_geometry方法赋值:
gdf = gdf.set_geometry(gdf.boundary.rename('bd'))

赋值后gdf['bd']就会是GeoSeries类型,原几何列会作为普通列保留。

  1. 如果需要同时保留原激活几何列和bd列的GeoSeries属性,赋值时显式指定为GeoSeries即可:
gdf['bd'] = gd.GeoSeries(gdf.boundary)
  1. 直接升级GeoPandas到0.10.0以上版本,原有代码无需修改即可得到和官方指南一致的运行结果。

内容的提问来源于stack exchange,提问作者dispink

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 08:36:05