返回基于另外两列的布尔值的布尔值

时间:2017-12-07 23:52:41

标签: python pandas numpy

我尝试根据另外两列的布尔值向DataFrame添加新列。如果两列中的一列具有真值,那么我希望新列返回True。只有当两个列都有false值时,我才希望这个新列返回False。

由于我对python很陌生,我还没有走得太远。

像这样的DataFrame就是一个很好的例子:

data = DataFrame({ 'name': ['A', 'B', 'C', 'D', 'E'], 
                   'has_a_pass': [False, False, False, True, False], 
                   'is_an_employee': [True, False, True, True, False] })

任何人都有任何有用的建议来解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

不确定is_an_employee字段是否是字符串而不是布尔值,但假设它们应该是布尔值:

data = pd.DataFrame({ 'name': ['A', 'B', 'C', 'D', 'E'], 'has_a_pass': [False, False, False, True, False], 'is_an_employee': [True, False, True, True, False] })
data['new column'] = data['is_an_employee'] | data['has_a_pass']
data
Out[49]: 
   has_a_pass  is_an_employee name  new column
0       False            True    A        True
1       False           False    B       False
2       False            True    C        True
3        True            True    D        True
4       False           False    E       False

答案 1 :(得分:1)

IIUC:

In [170]: data['new'] = data[['has_a_pass','is_an_employee']].any(1)

In [171]: data
Out[171]:
   has_a_pass  is_an_employee name    new
0       False            True    A   True
1       False           False    B  False
2       False            True    C   True
3        True            True    D   True
4       False           False    E  False