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

GeoPandas:如何用单个DataFrame按SA4_CODE21筛选另一DataFrame

解决GeoPandas中通过SA4_CODE21筛选DataFrame的问题

直接通过布尔索引筛选是最直接的方案,能避免merge可能带来的类型不匹配或意外匹配问题,步骤如下:

  1. 提取df1中的目标SA4_CODE21值
    因为df1仅含一行数据,直接通过位置索引取出对应值:

    # 提取目标代码
    target_code = df1['SA4_CODE21'].iloc[0]
    
  2. 筛选df2中匹配的记录
    利用布尔索引直接过滤GeoDataFrame,筛选后仍保留GeoDataFrame的地理属性:

    # 筛选匹配的记录
    filtered_df2 = df2[df2['SA4_CODE21'] == target_code]
    

常见问题处理

如果出现筛选结果为空或异常,大概率是列类型不匹配(比如df1的SA4_CODE21是整数,df2的是字符串),可以统一类型后再筛选:

# 统一转为字符串类型后匹配
target_code = str(df1['SA4_CODE21'].iloc[0])
filtered_df2 = df2[df2['SA4_CODE21'].astype(str) == target_code]

如果后续df1扩展为多行数据,可改用isin批量匹配:

filtered_df2 = df2[df2['SA4_CODE21'].isin(df1['SA4_CODE21'])]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 16:52:03