Обновите значение столбца Dataframe на основе значения NULL другого столбца, используя df.loc [] - PullRequest
0 голосов
/ 13 февраля 2020

Мне известно, что подобные вопросы задавались ранее, но ни один из ответов не отвечает моему конкретному c случаю, см. Ниже:

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

Я обновляю столбец вывода следующим образом:

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

это дает мне такой результат:

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

Результат, который я ожидаю:

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

Это всего лишь резюме, пожалуйста, пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 13 февраля 2020

Вы должны поставить условия в скобках с 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                        
...