2014-12-03 63 views
0

是否有快速检查字符串列表中的NANs的方法?我试过np.isnan(x),但得到TypeError消息Not implemented for this type,因为x在大多数情况下是str类型。检查字符串列表中的NANs

任何帮助表示赞赏。

+2

你在字符串列表中究竟是什么意思? – 2014-12-03 00:32:03

+0

@PadraicCunningham我的意思是浮点型NaNs。 – 2014-12-03 04:38:38

回答

0

如果你想如果你想检查一个字符串正是“男”,以检查是否“男”是在一个字符串

for item in list: 
    if 'NaN' in item: 
     print 'NaN in string!' 

for item in list: 
    if 'NaN' == item: 
     print 'String is NaN!' 

如果你不知道的“男”

for item in list: 
    if 'nan' == item.lower(): 
     print 'String is NaN!' 
1

,最简单的办法的情况下的一个字符串列表内专门检查float('nan')是到c赫克为float类型,然后检查!=自身是否truthy(这是唯一实际nan值的情况下):

>>> nan = float('nan') 
>>> isinstance(nan, float) 
True 
>>> nan != nan 
True 

def typesafe_isnan(obj): 
    return isinstance(obj, float) and obj != obj 
+0

谢谢。这似乎工作。你能解释一下,nan!= nan正在工作还是obj!= obj正在工作? – 2017-06-03 10:29:32

0

另一种选择是只在列表转换一切为字符串:

my_list = [str(my_list) for l in my_list] 

所有np.nan将被转换为字符串'nan',并且所有字符串都将保留字符串。然后你可以过滤掉'南'。

相关问题