有没有办法将条件应用于熊猫中的正则表达式?

时间:2019-03-28 15:10:29

标签: python 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以外的所有值替换为“其他”。

winner_name

Federer     
Other       
Other    
Other    
Other

我希望将条件应用于多个值

1 个答案:

答案 0 :(得分:2)

np.whereisin在这里足够了:

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