首页 > 解决方案 > 2列条件然后

问题描述

我在同一个数据框中有 2 列,如图所示:

Col1    Col2
YES     NO
YES     NO
YES     YES
YES     NO
YES     YES
        YES
        YES
        NO
        NO

我需要创建一个条件:如果 Col1 == "YES" 和 Col2 == "NO" 那么 COL2 = "YES",意思是:如果第 1 列是 "YES" 而第 2 列是 "NO" 那么第 2 列是 "YES" "

我正在尝试:

if df_db['Marketo LSC_x'] == "YES" and df_db['Marketo LSC_y'] == 'NO':
    df_db['Marketo LSC_y'] = 'YES'

但不工作,给我这个错误:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

标签: pythonconditional-statements

解决方案


仅供参考,Pandas 中布尔索引的逻辑运算符


试试这个:

criteria_1 = df_db['Marketo LSC_x'] == "YES"
criteria_2 = df_db['Marketo LSC_y'] == 'NO'

criteria = criteria_1 & criteria_2

df_db.loc[criteria, 'Marketo LSC_y'] = 'YES'

推荐阅读