从 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]
给定一个具有以下列名称的 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]