此 Python Pandas 数据帧列具有什么类型的“NaN”?[复制]

What type of "NaN" does this Python Pandas dataframe column have? [duplicate]

提问人:Makel 提问时间:11/10/2023 最后编辑:Makel 更新时间:11/10/2023 访问量:37

问:

所以,我有一个 Pandas 数据帧,并希望迭代一列,在 NaN 上做一些事情。
问题是:没有直接的比较想给我一个真实。

通过 isna() 和 notnull() 检查列可以完美地工作,并返回分配了正确布尔值的列。

但是,我希望对其进行迭代,使用 for 循环来检查每一行。
在这个过程中,所做的比较之一是在“nan”值上......并且永远不会与 True 相提并论。

隔离问题后,我尝试了我能想到的 nans,但是:

nans_to_check = [np.nan, None, np.NaN, math.nan, "nan", "NaN"]

for possible_nan in nans_to_check:
    if test_df[0] == possible_nan:
        print(f"{possible_nan} works")
    else:
        print(f"{possible_nan} and {test_df[0]} are NOT the same.")

从不打印“True”输出。

我还尝试了 Pandas 的“NA”值,它给了我 NA 是一个模棱两可的值的错误。如果我的 NaN 是这样,它可能会在支票上损坏,因此也可以丢弃。

我现在完全被困住了。
这是怎么回事?
是 Pandas 处理 NaN 的方式,还是我只需要继续尝试?

python pandas 数据帧 nan

评论

1赞 John Gordon 11/10/2023
您正在使用 .但是NaN与自身的比较并不相等,所以这种比较是不正确的。if test_df[0] == possible_nan
0赞 Makel 11/10/2023
好的,我花了一段时间才明白你在说什么,所以 NaN == NaN 是假的。那么检查它的适当方法是什么呢?Pandas 检查(google 和 chatGPT 所指向的)仅适用于数据帧。
0赞 Panda Kim 11/10/2023
重要的是要考虑为什么要检查 NaNs。举例说明并解释 stackoverflow.com/help/minimal-reproducible-example
0赞 user207421 11/10/2023
通常在某处提供了一个功能,拼写各不相同。isNan()

答: 暂无答案