Python 奇怪的行为:显然是熊猫数据框中的numpy nan显示为数据类型(';float64';)

Python 奇怪的行为:显然是熊猫数据框中的numpy nan显示为数据类型(';float64';),python,numpy,pandas,Python,Numpy,Pandas,我正在开发一个具有许多自定义函数、库和计算的数据框架。在进行了一些关键计算后,我注意到计算中出现了一些错误,这些错误本应返回一个浮点: 为了检查其中一个计算,我执行以下操作 dFA.loc['20101120']['variable x'] 返回(小盘股) 然后,为了确认这是一个奇怪的(小盘)numpy.nan(真或假),我会: 返回: False 那么我会: dFA.loc['20101120']['variable x'].dtype 返回: dtype('float64') 此外

我正在开发一个具有许多自定义函数、库和计算的数据框架。在进行了一些关键计算后,我注意到计算中出现了一些错误,这些错误本应返回一个浮点:

为了检查其中一个计算,我执行以下操作

dFA.loc['20101120']['variable x']
返回(小盘股

然后,为了确认这是一个奇怪的(小盘)numpy.nan(),我会:

返回:

False
那么我会:

dFA.loc['20101120']['variable x'].dtype
返回:

dtype('float64')
此外:

此外:

dFA.loc['20101120']['variable x']<1000
假的
哎呀。楠永远不等于楠

np.isnan(dFA.loc['20101120']['variable x'])

np.nan
进行的所有比较的计算结果均为
False
by


。。。只是一个非常特别的问题。

你说NaN永远不等于NaN是什么意思?为什么这个nan会出现在float64上?我说的就是这个意思;在两个N之间执行相等比较将始终导致false。NaN只是具有特定位序列的浮点。
dtype('float64')
dFA.loc['20101120']['variable x'] > 1000
False
dFA.loc['20101120']['variable x'] < 1000
False
dFA.loc['20101120']['variable x'] == np.nan
np.isnan(dFA.loc['20101120']['variable x'])
>>> np.nan == np.nan
False
>>> np.nan <= 1
False
>>> np.nan > 1
False
>>> np.nan.__class__
<type 'float'>