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

Pandas使用loc做多条件筛选时符合条件数据存在却无返回结果问题排查

问题根因
  • Pandas 中的缺失值NaN是特殊的浮点空值,不等于字符串"NaN",你代码中写的df['Type 2'] == "NaN"是匹配列值为字符串"NaN"的行,而非匹配真正的空值,因此无法筛选到符合要求的行。
  • 补充特性:NaN本身满足NaN != NaN的逻辑,即便列中确实是缺失值,用==判断也永远返回False,永远匹配不到结果。
解决方法

直接使用 Pandas 内置的isna()或者isnull()方法判断缺失值即可,修改后的代码如下:

df.loc[(df['HP'] >= 80) & (df['Type 1'] == "Fire") & (df['Type 2'].isna())]

如果你的数据中确实存储的是字符串形式的"NaN",可以先转换为标准空值后再筛选:

import numpy as np
# 把字符串"NaN"替换为标准缺失值
df['Type 2'] = df['Type 2'].replace("NaN", np.nan)
# 再执行上述筛选代码即可正常返回结果

内容的提问来源于stack exchange,提问作者Or Zemer Tov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:54:03