首页 > 解决方案 > 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听起来像是我正在尝试加入NoneNan来自我在谷歌上阅读的内容,但我试图确保nans没有超过这一点。

标签: python

解决方案


or np.nan根本不需要,空数组不是真的,所以它不会进入 if 语句。

facebook = [i for i in list2 if 'facebook' in i]

最重要的是,您甚至不需要 if 语句,因为如果您尝试加入一个空列表,您只会得到一个空字符串


推荐阅读