从 Graphlab SFrame 的特定列中查找具有 "Not Applicable" 值的行

Finding rows with "Not Applicable" value from a specific column from Graphlab SFrame

给定一个具有以下列名称的 Graphlab.SFrame 对象:

>>> import graphlab
>>> sf = graphlab.SFrame.read_csv('some.csv')
>>> s.column_names()
['Dataset', 'Domain', 'Score', 'Sent1', 'Sent2']

可以很容易地删除特定列中具有 "not applicable" (NA) / None 值的行,例如要删除 "Score" 列的具有 NA 值的行,我可以这样做:

>>> sf.dropna('Score')

或者用某个值(比如 -1)替换 None 值,我可以这样做:

>>> sf.fillna('Score', -1)

检查 https://dato.com/products/create/docs/generated/graphlab.SFrame.html 中的 SFrame 文档后,没有内置函数来查找包含特定列的 None 的行,例如 sf.findna('Score')。或者我可能错过了。

如果有这样的功能,叫什么?

如果没有,我应该如何提取该行中指定列具有 NA 值的行?

我认为您可以使用布尔数组来识别给定列中具有缺失值的行。

>>> import graphlab
>>> sf = graphlab.SFrame({'a': [1, 2, None, 4],
...                       'b': [None, 3, 1, None]})
>>> mask = sf['a'] == None
>>> mask
dtype: int
Rows: 4
[0, 0, 1, 0]