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

Pandas使用另一DataFrame值查询时无法匹配目标值问题排查

问题根本原因

in 运算符作用于pandas的Series对象时,判断的是目标值是否存在于Series的索引中,而非Series存储的数值中。你的df2的geoid10列的索引是[0,1,2,3,4],而df1里的geoid10都是14位左右的大整数,自然不可能匹配到索引值,所以全部返回false。

你可以用小测试验证这个逻辑:执行1 in df2['geoid10']会返回True,因为1是df2.geoid10的合法索引值。


正确写法

方法1:调整判断逻辑适配需求

把判断条件改为取值数组匹配即可:

for gid in df1['geoid10']: 
  if gid in df2['geoid10'].values: 
    print("true")
  else: 
    print("false")

方法2:使用pandas原生方法(更推荐,性能更高)

不用手动写循环,直接调用isin方法即可批量得到匹配结果:

# 直接返回和df1行数一致的布尔列,对应每个geoid10是否匹配
print(df1['geoid10'].isin(df2['geoid10']))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 11:45:04