【发布时间】:2020-03-04 05:20:31
【问题描述】:
!= 比较中的行为似乎不一致,具体取决于项目是否属于类别。如果值在类别!= NaN 中,则返回False,这似乎与正常!= NaN 比较的评估方式不一致。当值不在类别中时,行为似乎是预期的。
import pandas as pd
import numpy as np
# Standard evaluation
'11' != np.NaN
#True
'A' != np.NaN
#True
s = pd.Series([np.NaN, '11']).astype('category')
s.ne('11')
#0 False # <- What?
#1 False
#dtype: bool
s.ne('A')
#0 True
#1 True
#dtype: bool
# Without the category type the behavior is correct
pd.Series([np.NaN, '11']).ne('11')
#0 True
#1 False
#dtype: bool
这是一个错误,还是出于某种原因,类别中的预期 NaN 行为? pd.__version__ = 0.25.0,但也出现在1.0。
【问题讨论】: