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

geopandas过滤后GeoDataFrame传geometry到MultiPoint报存在的KeyError:13

问题根因

你遇到的KeyError:13本质是过滤操作导致的GeoDataFrame索引断裂:筛选Entry="YES"后,子集保留了原始数据集的索引值,会出现索引不连续的空洞,shapely的MultiPoint构造时会尝试按连续索引取值,遇到不存在的索引(此处为13)就会抛出错误。未过滤的原始数据集索引是连续的,因此可以正常构造。

修复方案
  • 筛选完成后先重置索引,清除断裂的旧索引:
    df_yes_entry = df_yes_entry.reset_index(drop=True)
  • 若重置索引后仍有异常,可以直接取geometry列的数值数组传入MultiPoint,完全规避索引影响:
from shapely.geometry import MultiPoint
entry_multipoint = MultiPoint(df_yes_entry.geometry.values)
效率优化建议

计算给定点到地铁口的最近距离时,无需额外构造MultiPoint,可以直接用geopandas内置的距离方法,计算效率更高:

# 注意目标点需要提前转换为和数据集一致的EPSG:5234投影
target_point = Point(目标点坐标)
min_distance = df_yes_entry.geometry.distance(target_point).min()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 19:24:00