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

如何正确判断DataFrame列中非NaN值并打印(支持负数值场景)

正确判断DataFrame列中非NaN值的方法

为什么你的尝试无效?

  • j != np.nan 不生效:因为NaN的特性是任何与NaN的比较(包括等于或不等于自身)都会返回False,所以这个判断永远为True,导致NaN被错误打印。
  • j != None 不生效:pandas的浮数列中,缺失值存储的是np.nan而非None,所以这个判断无法识别NaN。

正确的判断方式

方法1:使用pandas原生的pd.notna()(推荐)

这是pandas专门用于检测非缺失值的函数,兼容所有数据类型:

import pandas as pd

# 遍历列并打印非NaN值
for j in df['交易金额']:
    if pd.notna(j):
        print(j)

方法2:使用numpy的np.isnan()取反

针对浮点数类型的列,可以用numpy的函数判断,再取反:

import numpy as np

for j in df['交易金额']:
    if not np.isnan(j):
        print(j)

更高效的pandas操作(无需手动维护迭代次数)

其实不需要手动遍历并判断,pandas可以直接过滤非NaN值后处理,更简洁高效:

# 直接遍历过滤后的非NaN值
for val in df['交易金额'].dropna():
    print(val)

# 或者直接打印整个非NaN序列
print(df['交易金额'].dropna())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 15:10:22