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

使用csv替代GeoDataFrame做空间判断时'str'无contains属性报错如何解决

问题原因

CSV是纯文本存储格式,GeoDataFrame调用to_csv()导出时,原本存储Shapely几何对象的geometry列会被自动序列化为WKT(Well-known text)格式的字符串。使用pandas的read_csv()读取时,该列会默认按字符串类型加载,没有Shapely几何对象的contains方法,因此触发报错。

实现方案

使用CSV完全可以实现相同功能,只需要在读取CSV后,将geometry列的WKT字符串转换回Shapely几何对象即可,修正后代码如下:

import pandas as pd
from shapely.geometry import Point
from shapely.wkt import loads

# 导出GeoDataFrame到CSV
gdf2.to_csv('gdf2.csv', index=False)

# 读取CSV并转换geometry列类型
gdf_csv = pd.read_csv('gdf2.csv')
gdf_csv['geometry'] = gdf_csv['geometry'].apply(loads)

# 点归属判断逻辑
point = Point(lon, lat)
for i in range(len(gdf_csv['geometry'])):
    if gdf_csv['geometry'][i].contains(point):
       print(gdf_csv['statnaam'][i])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:36:03