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

Pandas过滤NaN值问题:如何组合id>1000与id为NaN的筛选条件

解决DataFrame筛选id>1000或id为NaN行的问题

首先得明确:你之前用== NaN或者=='Nan'都不行,是因为NaN的特殊性质——它和任何值(包括自己)比较的结果都是False,所以直接用等于判断完全无效。另外你写的id>1000 & id==NaN逻辑也有问题,这两个条件不可能同时满足,你要的应该是满足其中一个即可,所以得用逻辑或|,不是逻辑与&。

给你两种可行的写法:

  1. 用pandas的isna()函数(和isnull()功能完全一致,任选其一即可):
df.loc[(df['id'] > 1000) | pd.isna(df['id'])]
  1. 直接调用Series的isna()方法,写法更简洁:
df.loc[(df['id'] > 1000) | df['id'].isna()]

注意一定要给每个条件单独加括号,因为|的优先级比比较运算符高,不加括号会导致运算顺序出错,得不到正确结果。

如果之前你试过numpy的isnan()没成功,大概率是因为逻辑运算符用错了(用了&而不是|),或者没加括号导致运算顺序不对,换成上面的写法就能解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 08:23:12