Есть ли способ применить условие к регулярному выражению в pandas?

#python #pandas

#python #pandas

Вопрос:

Я фильтрую столбец в pandas, но хочу сохранить определенные значения.

Моя цель — изменить значения всех игроков, которые не являются Федерером, Надалем и Джоковичем, на «Другие», чтобы

Перед:

 winner_name 

Federer     
Nadal       
Djokovic    
Kyrgios    
Hewitt
  

После:

 winner_name 

Federer     
Nadal       
Djokovic    
Other    
Other
  

Я пробовал это

 df['winner_name'] = df['winner_name'].replace(to_replace=r"^(.(?<!Roger Federer))*?$", value='other',regex=True) 
  

но это заменяет все значения, отличные от Federer, на ‘other’.

 winner_name

Federer     
Other       
Other    
Other    
Other
  

Я хочу применить условие к нескольким значениям

Ответ №1:

np.where и isin здесь достаточно:

 df['winner_name'] = np.where(df['winner_name'].isin(['Federer', 'Nadal', 'Djokovic']),
                             df['winner_name'], 'Other')