3 回答
TA贡献1784条经验 获得超2个赞
使用数据帧.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')
没有数据帧。
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贡献1829条经验 获得超7个赞
用于转换为二进制,然后检查每行: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贡献1843条经验 获得超7个赞
您可以使用:
df['change3'] = df.apply(lambda x: 'ok' if x['change1'] == x['change2'] else 'not ok', axis=1)
输出:
添加回答
举报