我有两列 - Punchout 和 Contract。我想要一个目录标志列,如果 Punchout 和 Contract 都是 NAN,则它为 FALSE,否则为 TRUE。我写了下面的一段代码:
req_line['Catalog_Flag'] = np.where((req_line['Contract']) & (req_line['Punchout']) = '[]',False,True)
但它抛出的错误是: SyntaxError: expression cannot contain assignment, perhaps you meant "=="?
还有其他方法吗?请帮忙!
样本数据
Contract | Punchout | Flag
NaN | NaN | False
NaN | Computer Information | True
Non-CLM0_Cat_01 | NaN | True
这里np.where
没有必要,只需~
用于反转掩码Series.isna
:
req_line['Catalog_Flag'] = ~(req_line['Contract'].isna() & req_line['Punchout'].isna())
工作像测试,如果没有缺失值|
按位OR
由Series.notna
:
req_line['Catalog_Flag'] = req_line['Contract'].notna() | req_line['Punchout'].notna()
print (req_line)
Contract Punchout Flag Catalog_Flag
0 NaN NaN False False
1 NaN Computer Information True True
2 Non-CLM0_Cat_01 NaN True True
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句