[英]Does pandas != 'a value' return NaNs?
当我使用x['test'] = df['a_variable'].str.contains('some string')
我得到-
True
NaN
NaN
True
NaN
如果我使用x[x['test'] != True]
是否应该返回值为NaN的行?
谢谢。
是的,这是预期的行为:
In [3]:
df = pd.DataFrame({'some_string':['asdsa','some',np.NaN, 'string']})
df
Out[3]:
some_string
0 asdsa
1 some
2 NaN
3 string
In [4]:
df['some_string'].str.contains('some')
Out[4]:
0 False
1 True
2 NaN
3 False
Name: some_string, dtype: object
使用上面的遮罩:
In [13]:
df[df['some_string'].str.contains('some') != False]
Out[13]:
some_string
1 some
2 NaN
因此,以上是预期的行为。
如果使用na=value
value为NaN
值指定值,则可以获取设置为返回值的任何值:
In [6]:
df['some_string'].str.contains('some', na=False)
Out[6]:
0 False
1 True
2 False
3 False
Name: some_string, dtype: bool
上面的内容很重要,因为使用NaN
值进行索引将导致KeyError
。
是的,我们希望它会发生
例如)
x=pd.DataFrame([True,NaN,True,NaN])
print x
0
0 True
1 NaN
2 True
3 NaN
print x[x[0] != True]
0
1 NaN
3 NaN
x[x[0] != True]
将返回值不为True
Like wise
print x[x[0] != False]
0
0 True
1 NaN
2 True
3 NaN
由于方程式表示要返回所有非False
值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.