Home > front end >  check for empty spaces & np.NaN in strings
check for empty spaces & np.NaN in strings

Time:10-21

I wrote a function such that if the passed val only has whitespaces in it for example ' ', they all get removed and we return np.Nan or a nullvalue.

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(''))    

The function returns as desired. The output is:

5
WHAJS
nan
nan

but now when I use this function, I want to check that the string is

  1. not just whitespaces
  2. not NULL

However, when I check this:

check = check_for_empty_strings('')
if (check):
    print('tru')
    print(check)
else:
    print('dsj')

I get this output

tru
nan

Why is the first one tru? If check == NaN then shouldn't if (check) be False? How else can I check that my value is not just whitespaces or NULL.

CodePudding user response:

Well you can check for np.nan:

np.isnan(check)

Or you can return None instead of np.nan and then check for it as you have done above in the if condition because bool(None) evaluates to False. If you evaluate bool(np.nan) on the other hand you get the output to be True.

CodePudding user response:

check = check_for_empty_strings('')
if (np.isnan(check)):
    print('tru')
    print(check)
else:
    print('dsj')

This works

  • Related