我正在过滤熊猫中的一列,但希望保留某些值。
我的目标是将所有非费德勒,纳达尔和德约科维奇的球员的价值观改为“其他”,
之前:
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
我希望将条件应用于多个值
答案 0 :(得分:2)
np.where
和isin
在这里足够了:
df['winner_name'] = np.where(df['winner_name'].isin(['Federer', 'Nadal', 'Djokovic']),
df['winner_name'], 'Other')