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

如何从GeoDataFrame列中选取单个值?解决取值报错问题

从GeoPandas GeoDataFrame中选取单个(多)多边形值的正确方法

问题根源在于筛选后的GeoDataFrame索引不连续。当你通过world.loc[world['name'].isin(['France', 'Belgium'])]得到BeFra时,它的索引继承自原world数据集的索引,并非从0开始的连续序列,直接用[0]会因找不到对应索引而报错。而你示例中的普通DataFrame是从零开始的连续索引,所以df['Name'][0]能正常运行。

以下是几种可行的解决方法:

  • 用.iloc[]按位置选取:.iloc是基于位置的索引器,不管当前索引是什么,直接取第n个位置的元素:

    # 两种写法都可以
    BeFra['geometry'].iloc[0]
    # 更推荐的链式写法,避免链式赋值警告
    BeFra.iloc[0]['geometry']
    
  • 重置索引后使用原方式:调用reset_index(drop=True)重置索引为连续序列,之后就能用[0]取值:

    BeFra = world.loc[world['name'].isin(['France', 'Belgium'])].reset_index(drop=True)
    BeFra['geometry'][0]
    
  • 用.loc[]结合实际索引值:先查看BeFra.index确认筛选后行的实际索引,再用.loc精准选取:

    # 先查看索引
    print(BeFra.index)
    # 假设输出是Int64Index([5, 14], dtype='int64'),则取第一个元素用
    BeFra['geometry'].loc[5]
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 05:20:09