我的具体例子:
In: list(pd.unique(df['x'].ravel()))
Out: [nan, 1.0]
但是当我检查这是否属实时:
In: list(pd.unique(df['x'].ravel())) is [nan, 1.0]
Out: False
任何人都可以帮助我理解我做错了什么?
答案 0 :(得分:3)
is
测试以查看每一侧的表达式是否是相同的对象。要查看它们是否相同,请使用==
。
答案 1 :(得分:0)
无论哪种方式,即使您正确使用==,您仍然会得到False
。一个快速的解决方法是过滤掉nan的:
[x for x in list(pd.unique(df['x'].ravel())) if str(x) != 'nan'] == ...
答案 2 :(得分:0)
我认为你需要测试:
In [73]: df['x']
Out[73]:
0 np.nan
1 1
Name: x, dtype: object
In [74]: list(pd.unique(df['x'].ravel())) == ['np.nan', '1']
Out[74]: True