0

I am aware that similar questions have been asked before but none of the answer cater to my specific case, see below:

   dummy_1  dummy_2  dummy_3  output 
1  Yes               Yes
2           
3  Yes      Yes      
4  Yes      

I update the output column like so:

df.loc[df['dummy_1'].notnull() == True & df['dummy_2'].notnull() == True & df['dummy_3'].isnull(), 'output'] = 'WINNER'

this gives me this result:

   dummy_1  dummy_2  dummy_3  output
1  Yes               Yes         
2                             WINNER
3  Yes      Yes               
4  Yes                        

The output I am expecting is:

   dummy_1  dummy_2  dummy_3  output
1  Yes               Yes      
2                             
3  Yes      Yes               WINNER
4  Yes                

This is just a summary, please please please help me out.

Nick ODell
  • 15,465
  • 3
  • 32
  • 66

1 Answers1

0

You need to put the conditions in parenthesis with np.where:

>>> df['output'] = np.where((  df['dummy_1'].notnull() 
                             & df['dummy_2'].notnull() 
                             & df['dummy_3'].isnull() ), 'WINNER', None)
>>> df
  dummy_1 dummy_2 dummy_3  output
1     Yes     NaN     Yes    None
2     NaN     NaN     NaN    None
3     Yes     Yes     NaN  WINNER
4     Yes    None     NaN    None
# or
>>> df.fillna('')
  dummy_1 dummy_2 dummy_3  output
1     Yes             Yes        
2                                
3     Yes     Yes          WINNER
4     Yes                        
Sayandip Dutta
  • 15,602
  • 4
  • 23
  • 52