3 回答

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個贊
使用數(shù)據(jù)幀.eq
和 DataFrame.all
.這將幫助您改進(jìn)代碼的語法并避免錯誤。
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')
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')
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

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個贊
用于轉(zhuǎn)換為二進(jìn)制,然后檢查每行:DataFrame.replaceall
df1['change3'] = np.where(df1.replace({'yes': 1, 'no': 0}).all(axis=1),
'ok',
'not ok')
或與 和 :replacesum
df1['change3'] = np.where(df1.replace({'yes': 1, 'no': 0}).sum(axis=1).gt(1),
'ok',
'not ok')
change1 change2 change3
0 yes yes ok
1 yes no not ok
2 no yes not ok
3 no yes not ok

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個贊
您可以使用:
df['change3'] = df.apply(lambda x: 'ok' if x['change1'] == x['change2'] else 'not ok', axis=1)
輸出:
添加回答
舉報