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

Python中Pandas DataFrame NaN值条件判断输出异常问题求解

问题原因
  • 错误将NaN作为字符串处理:Pandas中的空值NaN是numpy定义的浮点类特殊标记,并非字符串,因此用它和'NaN'、'nan'两个字符串做不等比较的结果永远为True。
  • 逻辑运算符选型错误:你使用了or逻辑,只要任意一个条件成立就会进入打印分支,即便后续遇到字符串格式的空值,只要不同时等于两个测试字符串,判断结果依然为真,永远会触发打印。
  • 空值判断逻辑不符合NaN特性:即便你直接和数值NaN比较,也不能用==或!=直接判断,NaN的核心特性是和任何值(包括自身)的相等比较都返回False,直接比较无法正确识别空值。
解决方法

直接用Pandas内置的pd.notna()函数判断sma值是否为非空,该函数可以兼容识别NaN、NaT等各类Pandas体系下的空值,优化后代码如下:

import pandas as pd

# 取sr=1对应的sma值,避免链式索引更安全
target_sma = df.loc[df['sr'] == 1, 'sma'].iloc[0]
if pd.notna(target_sma):
    print(target_sma)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 17:09:03