Вы можете использовать mask
, это заменит 'defg' во всем кадре данных на NaN:
df.mask(df == 'defg')
Вывод:
0
0 abcd
1 abcd
2 NaN
3 abcd
4 NaN
Вы можете сделать это для столбцатакже:
df['col1'].mask(df['col1'] == 'defg')
Или используйте замену, как подсказывает @pygo в своем решении
df['col1'].replace('defg',np.nan)