繁体   English   中英

熊猫!='值'返回NaN吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM