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

如何从Geopandas GeoDataFrame提取Shapely Polygon并转为WKT列表

正确提取WKT格式几何列表的方法

你之前的方法出错的核心原因是:wkt.dumps()仅支持接收单个Shapely几何对象作为输入,你直接传入整个Geometry列(GeoSeries对象)无法完成批量转换,直接调用tolist()也只会输出Shapely对象的原生引用。

你可以用以下两种方案实现需求:

方案1(推荐,适配Geopandas 0.9及以上版本)

直接调用GeoSeries自带的to_wkt()方法批量转换,再转成列表即可:

# 直接得到WKT字符串列表
wkt_list = intersection_matches['geometry'].to_wkt().tolist()
# 打印验证
print(wkt_list)

方案2(兼容低版本Geopandas)

遍历每个几何对象,调用其自带的wkt属性或wkt.dumps()方法完成转换:

# 写法1:调用Shapely对象原生wkt属性
wkt_list = intersection_matches['geometry'].apply(lambda x: x.wkt).tolist()

# 写法2:用wkt.dumps转换
from shapely import wkt
wkt_list = intersection_matches['geometry'].apply(lambda x: wkt.dumps(x)).tolist()

之前尝试的方法错误说明

  1. 直接给wkt.dumps()传入整个GeoSeries,该函数不支持批量处理,所以返回的还是未转换的对象列表
  2. 直接调用tolist()仅会将GeoSeries中的Shapely对象转成列表结构,不会触发WKT格式转换
  3. iloc[:,4]取到的还是Geometry列,和直接取geometry列没有区别,转列表逻辑和第二种错误一致
  4. decode是字节类型的解码方法,GeoDataFrame对象无该属性,属于方法误用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:06:01