检查字符串中的空格和 np.NaN
check for empty spaces & np.NaN in strings
我写了一个函数,如果传递的 val
只有空格,例如 ' '
,它们都会被删除,我们 return np.Nan
或null
值。
def check_for_empty_spaces(val):
val = val.rstrip()
if len(val)<1:
return np.NaN
else:
return val
print(len(check_for_empty_strings('WHAJS ')))
print(check_for_empty_strings('WHAJS'))
print(check_for_empty_strings(' '))
print(check_for_empty_strings(''))
函数 returns 随心所欲。输出为:
5
WHAJS
nan
nan
但是现在当我使用这个函数时,我想检查字符串是
- 不仅仅是空格
- 不为空
然而,当我检查这个时:
check = check_for_empty_strings('')
if (check):
print('tru')
print(check)
else:
print('dsj')
我得到这个输出
tru
nan
为什么第一个是真的?如果检查 == NaN 那么 if (check)
不应该是 False 吗?我还能如何检查我的值不只是空格或 NULL。
你可以检查 np.nan
:
np.isnan(check)
或者您可以 return None
而不是 np.nan
然后检查它,就像您在 if 条件中所做的那样,因为 bool(None)
计算为 False
.另一方面,如果你计算 bool(np.nan)
,你得到的输出是 True
.
check = check_for_empty_strings('')
if (np.isnan(check)):
print('tru')
print(check)
else:
print('dsj')
这个有效
我写了一个函数,如果传递的 val
只有空格,例如 ' '
,它们都会被删除,我们 return np.Nan
或null
值。
def check_for_empty_spaces(val):
val = val.rstrip()
if len(val)<1:
return np.NaN
else:
return val
print(len(check_for_empty_strings('WHAJS ')))
print(check_for_empty_strings('WHAJS'))
print(check_for_empty_strings(' '))
print(check_for_empty_strings(''))
函数 returns 随心所欲。输出为:
5
WHAJS
nan
nan
但是现在当我使用这个函数时,我想检查字符串是
- 不仅仅是空格
- 不为空
然而,当我检查这个时:
check = check_for_empty_strings('')
if (check):
print('tru')
print(check)
else:
print('dsj')
我得到这个输出
tru
nan
为什么第一个是真的?如果检查 == NaN 那么 if (check)
不应该是 False 吗?我还能如何检查我的值不只是空格或 NULL。
你可以检查 np.nan
:
np.isnan(check)
或者您可以 return None
而不是 np.nan
然后检查它,就像您在 if 条件中所做的那样,因为 bool(None)
计算为 False
.另一方面,如果你计算 bool(np.nan)
,你得到的输出是 True
.
check = check_for_empty_strings('')
if (np.isnan(check)):
print('tru')
print(check)
else:
print('dsj')
这个有效