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
,为什么 Dataframe 中的值填充为NaN
?
我得到的NaN
不是一个数字,所以它可能会这样处理它,因此改变了 Dataframe 中的条目,但我仍然不确定。
3条答案
按热度按时间yvt65v4c1#
所以基本上
NaN
、NAN
和nan
是nan的等价定义或者换句话说
NaN
和NAN
是nan
的别名如果检查它们是否相等,则返回
False
如果您检查所有这3个的类型,则会发现所有类型都是相同的
type(float)
但是让了
现在,如果您要检查a、B和c是否相等,则返回
True
即使在文件中(第4行)也说:
无法使用相等来测试NaN
您可以从这里查看文档:-
https://numpy.org/doc/stable/user/misc.html?highlight=numpy%20nan
xxhby3vn2#
实际上即使你测试:
np.nan == np.nan
您将得到false
3ks5zfa03#
np.nan is np.NAN is np.NaN
,您将获得true