python - Nan检查不认识Nan
问题描述
我正在使用列表理解从 url 列表中收集 facebook 链接。
这是列表:
list1 = ['facebook.com','johnsmithfacebook.com','amazon.com','google.com','stackoverflow.com']
现在我将做列表理解来获取 facebook url,np.nan
如果没有找到则返回:
facebook = [i for i in list1 if 'facebook' in i] or pd.np.nan
如果结果存在,我将加入字符串:
if facebook:
facebook = ', '.join(facebook)
print(facebook)
'facebook.com, johnsmithfacebook.com'
伟大的。这样可行。
但如果它没有 facebook url,np.nan
而是返回,我遇到了一个问题:
# list
list2 = ['amazon','google']
facebook = [i for i in list2 if 'facebook' in i] or np.nan
if facebook: # nan check
facebook = ', '.join(facebook) # join if not nan
TypeError Traceback (most recent call last)
<ipython-input-52-1856f748f805> in <module>
1 if facebook:
----> 2 facebook = ', '.join(facebook)
TypeError: can only join an iterable
facebook 变量是nan
,那么它是如何通过if facebook:
检查的呢?
print(facebook)
nan
该错误can only join an iterable
听起来像是我正在尝试加入None
或Nan
来自我在谷歌上阅读的内容,但我试图确保nans
没有超过这一点。
解决方案
or np.nan
根本不需要,空数组不是真的,所以它不会进入 if 语句。
facebook = [i for i in list2 if 'facebook' in i]
最重要的是,您甚至不需要 if 语句,因为如果您尝试加入一个空列表,您只会得到一个空字符串