gpt4 book ai didi

python - 使用 .isna 和 (df==np.nan).sum().sum() 的答案之间的差异

转载 作者:太空宇宙 更新时间:2023-11-03 20:21:00 25 4
gpt4 key购买 nike

申请后df.fillna(df.mean())要删除 Nan 值,我得到不同的结果 df.isna().sum().sum()(df==np.nan).sum().sum()

(df==np.nan).sum().sum()我得到 0但与 df.isna().sum().sum()我得到 33470

最佳答案

问题是 NaN 不等于 NaN。严格来说, float 的相等关系,并不是equivalence relation ,因为它不完全自反

事实上,如果我们将 np.nannp.nan 进行比较,我们会得到:

>>> np.nan == np.nan
False

这就是 .isna() 存在的主要原因。

例如,如果我们制作一个仅由 NaN 组成的数据帧,我们会看到 df.isna()df == np.nan 给出不同的答案:

>>> df = pd.DataFrame({'a': [np.nan]*5, 'b': [np.nan]*5})
>>> df
a b
0 NaN NaN
1 NaN NaN
2 NaN NaN
3 NaN NaN
4 NaN NaN
>>> df.isna()
a b
0 True True
1 True True
2 True True
3 True True
4 True True
>>> df == np.nan
a b
0 False False
1 False False
2 False False
3 False False
4 False False

关于python - 使用 .isna 和 (df==np.nan).sum().sum() 的答案之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58155632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com