Используйте DataFrame.eq
и DataFrame.all
. Это поможет вам улучшить синтаксис кода и избежать ошибок.
df['change3'] = np.where(df.eq('yes').all(axis=1), 'ok' , 'not ok')
#if you need select columns
#df['change3'] = np.where(df[['change1', 'change2']].eq('yes').all(axis=1),
'ok' , 'not ok')
без DataFrame.all
df['change3'] = np.where((df1['change1']=='yes') & (df1['change2'] == 'yes'),
'ok', 'not ok')
или
df['change3'] = np.where(df1['change1'].eq('yes') & df1['change2'].eq('yes'),
'ok', 'not ok')
Вы также можете использовать Series.map
/ Series.replace
df['change3'] = df.eq('yes').all(axis=1).map({True : 'ok' , False : 'not ok'})
#df['change3'] = df.eq('yes').all(axis=1).replace({True : 'ok' , False : 'not ok'})
print(df)
# change1 change2 change3
# 0 yes yes ok
# 1 yes no not ok
# 2 no yes not ok
# 3 no yes not ok