В одной строке будет выглядеть так:
df.loc[df['B'].eq('CN'), 'A'] = df['A'].map(d)
df
A B
0 abc AN
1 abd BN
2 ana CN
3 abc BN
4 aza CN
Также вы можете использовать np.where :
df['A'] = np.where(df['B'].eq('CN'), df['A'].map(d), df['A'])
Вот весь код с np.where
:
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': ['abc', 'abd', 'a01', 'abc', 'a02'],
'B': ['AN', 'BN', 'CN', 'BN', 'CN']})
d = {'a01': 'ana', 'a02': 'aza'}
df['A'] = np.where(df['B'].eq('CN'), df['A'].map(d), df['A'])
df
A B
0 abc AN
1 abd BN
2 ana CN
3 abc BN
4 aza CN