【发布时间】:2019-04-25 10:55:37
【问题描述】:
np.Nan 和 np.nan 有什么区别吗?根据我的理解,两者都用于空值,但如果你看这里
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame([[np.nan,2,np.nan,0],[3,4,np.nan,1],[np.nan,np.nan,np.nan,5]],columns=list('ABCD'))
print(df)
print(np.nan == np.NaN)
我得到以下输出:
A B C D
0 NaN 2.0 NaN 0
1 3.0 4.0 NaN 1
2 NaN NaN NaN 5
False
Process finished with exit code 0
现在如果这些相同print(np.nan == np.NaN) 应该返回True,为什么数据框中的值填充为NaN?
我得到NaN 不是一个数字,所以它可能会以这种方式处理它并因此更改数据框中的条目,但我仍然不确定。
【问题讨论】:
-
np.nan 是 np.NaN 是 True。他们是别名。
-
在 pycharm 中,我得到了错误。
-
@user10089194 你不应该使用相等来测试
nans,它总是返回False。即np.nan == np.nan也是False。但是用is、np.nan is np.NaN测试身份是True。请参阅 NumPy 文档中的 IEEE 754 Floating Point Special Values。 -
both are used for null values- 没有。不为空。 “不是数字”。