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

Pandas用isin+多条件过滤DataFrame返回空结果,求解决思路

排查与解决方法

出现空结果大概率是数据格式不匹配或者数据存在隐藏字符导致的,按以下步骤排查:

  • 先检查列的数据类型
    运行df.dtypes查看Item Code和Year的类型:

    • 如果Item Code是数字类型(比如int64),你代码里用字符串'04901'匹配肯定找不到;同理如果Year是数字类型,用'2022'也匹配不上。
    • 修正后的代码示例(假设两列都是数字类型):
      df.loc[(df['Item Code'].isin([4901, 4940])) & (df['Year'] == 2022)]
      
  • 检查数据是否有空格/隐藏字符
    很多时候数据里会带首尾空格,比如' 04901'或者'2022 ',肉眼看不到但匹配失败。可以先清洗数据再筛选:

    # 先转为字符串并去除首尾空格
    df['Item Code'] = df['Item Code'].astype(str).str.strip()
    df['Year'] = df['Year'].astype(str).str.strip()
    # 再执行筛选
    df.loc[(df['Item Code'].isin(['04901', '04940'])) & (df['Year'] == '2022')]
    
  • 确认数据中是否存在目标值
    运行df['Item Code'].unique()和df['Year'].unique(),查看这两列的所有唯一值,确认04901、04940和2022确实存在于数据中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 09:32:41