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

如何让pandas的np.where函数判断列值时自动忽略空值?

问题根因

pandas.Series.str.contains() 默认对空值(NaN)返回NaN,np.where判断条件时会把NaN当作真值处理,所以空值行被错误填入了"Yes"。

修复代码

直接给str.contains()加na=False参数,指定空值按不匹配处理即可:

dfe['Activity_2'] = np.where(dfe['ZBPCENTY'].str.contains("3324", na=False), "Yes", "no")
补充说明

str.contains的na参数专门用来控制空值的匹配逻辑:

  • 传False:空值判定为不匹配,对应填"no",符合你的需求
  • 传True:空值判定为匹配,就是你当前遇到的错误情况
  • 如果后续需要单独标识空值,也可以给na传自定义标量,比如na="缺失值"单独做后续处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.05 16:07:11