Python 3.x 如果结果为空,则两个列表和句柄异常之间的差异

Python 3.x 如果结果为空,则两个列表和句柄异常之间的差异,python-3.x,pandas,Python 3.x,Pandas,我有一个有两列的数据框。每一列都有一个项目列表,我试图从一列中减去另一列,如下所示 test['new'] = test['products'].apply(set) - test['old_products'].apply(set) 这很有效 当新创建的列没有元素时,它看起来像test['new']=set 如果结果为null,如何处理此异常并将其设为NA。谢谢。和往常一样,但有例外。尝试以下方法: try: test['new'] = test['products'].apply

我有一个有两列的数据框。每一列都有一个项目列表,我试图从一列中减去另一列,如下所示

 test['new'] = test['products'].apply(set) - test['old_products'].apply(set)
这很有效

当新创建的列没有元素时,它看起来像test['new']=set
如果结果为null,如何处理此异常并将其设为NA。谢谢。

和往常一样,但有例外。尝试以下方法:

try:
    test['new'] = test['products'].apply(set) - test['old_products'].apply(set)
except:
    test['new'] = 'NA'
检查文档:

编辑。经过讨论,似乎也不例外,所以答案是:

if  test['products'].apply(set) - test['old_products'].apply(set) == set():
    test['new'] = 'NA'
else:
    test['new'] = test['products'].apply(set) - test['old_products'].apply(set)

你能发布你的数据帧和预期输出的样本吗?谢谢。我如上所述试过。如果减法后列表为空,我仍然得到设置的值。谢谢。@Lilly那么你似乎没有例外,我已经更新了答案