Вы можете сделать это, используя lo c
df.loc[df['col2'].str.contains('apple'), 'col1'] = df['col1'] * 2
ИЛИ np.where
df['col1'] = np.where(df['col2'].str.contains('apple'), df['col1'] * 2, df['col1'])
ПРИМЕЧАНИЕ: Вы можете pass case = False in содержит, если вы хотите, чтобы регистр значений игнорировался